/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: opentelemetry/proto/metrics/v1/metrics.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "opentelemetry/proto/metrics/v1/metrics.pb-c.h"
void   opentelemetry__proto__metrics__v1__metrics_data__init
                     (Opentelemetry__Proto__Metrics__V1__MetricsData         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__MetricsData init_value = OPENTELEMETRY__PROTO__METRICS__V1__METRICS_DATA__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__metrics_data__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__MetricsData *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metrics_data__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__metrics_data__pack
                     (const Opentelemetry__Proto__Metrics__V1__MetricsData *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metrics_data__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__metrics_data__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__MetricsData *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metrics_data__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__MetricsData *
       opentelemetry__proto__metrics__v1__metrics_data__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__MetricsData *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__metrics_data__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__metrics_data__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__MetricsData *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metrics_data__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__resource_metrics__init
                     (Opentelemetry__Proto__Metrics__V1__ResourceMetrics         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__ResourceMetrics init_value = OPENTELEMETRY__PROTO__METRICS__V1__RESOURCE_METRICS__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__resource_metrics__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__ResourceMetrics *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__resource_metrics__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__resource_metrics__pack
                     (const Opentelemetry__Proto__Metrics__V1__ResourceMetrics *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__resource_metrics__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__resource_metrics__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__ResourceMetrics *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__resource_metrics__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__ResourceMetrics *
       opentelemetry__proto__metrics__v1__resource_metrics__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__ResourceMetrics *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__resource_metrics__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__resource_metrics__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__ResourceMetrics *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__resource_metrics__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__scope_metrics__init
                     (Opentelemetry__Proto__Metrics__V1__ScopeMetrics         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__ScopeMetrics init_value = OPENTELEMETRY__PROTO__METRICS__V1__SCOPE_METRICS__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__scope_metrics__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__ScopeMetrics *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__scope_metrics__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__scope_metrics__pack
                     (const Opentelemetry__Proto__Metrics__V1__ScopeMetrics *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__scope_metrics__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__scope_metrics__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__ScopeMetrics *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__scope_metrics__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__ScopeMetrics *
       opentelemetry__proto__metrics__v1__scope_metrics__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__ScopeMetrics *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__scope_metrics__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__scope_metrics__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__ScopeMetrics *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__scope_metrics__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__metric__init
                     (Opentelemetry__Proto__Metrics__V1__Metric         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Metric init_value = OPENTELEMETRY__PROTO__METRICS__V1__METRIC__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__metric__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Metric *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metric__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__metric__pack
                     (const Opentelemetry__Proto__Metrics__V1__Metric *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metric__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__metric__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Metric *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metric__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Metric *
       opentelemetry__proto__metrics__v1__metric__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Metric *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__metric__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__metric__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Metric *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__metric__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__gauge__init
                     (Opentelemetry__Proto__Metrics__V1__Gauge         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Gauge init_value = OPENTELEMETRY__PROTO__METRICS__V1__GAUGE__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__gauge__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Gauge *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__gauge__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__gauge__pack
                     (const Opentelemetry__Proto__Metrics__V1__Gauge *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__gauge__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__gauge__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Gauge *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__gauge__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Gauge *
       opentelemetry__proto__metrics__v1__gauge__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Gauge *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__gauge__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__gauge__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Gauge *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__gauge__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__sum__init
                     (Opentelemetry__Proto__Metrics__V1__Sum         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Sum init_value = OPENTELEMETRY__PROTO__METRICS__V1__SUM__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__sum__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Sum *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__sum__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__sum__pack
                     (const Opentelemetry__Proto__Metrics__V1__Sum *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__sum__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__sum__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Sum *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__sum__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Sum *
       opentelemetry__proto__metrics__v1__sum__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Sum *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__sum__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__sum__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Sum *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__sum__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__histogram__init
                     (Opentelemetry__Proto__Metrics__V1__Histogram         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Histogram init_value = OPENTELEMETRY__PROTO__METRICS__V1__HISTOGRAM__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__histogram__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Histogram *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__histogram__pack
                     (const Opentelemetry__Proto__Metrics__V1__Histogram *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__histogram__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Histogram *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Histogram *
       opentelemetry__proto__metrics__v1__histogram__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Histogram *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__histogram__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__histogram__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Histogram *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__exponential_histogram__init
                     (Opentelemetry__Proto__Metrics__V1__ExponentialHistogram         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__ExponentialHistogram init_value = OPENTELEMETRY__PROTO__METRICS__V1__EXPONENTIAL_HISTOGRAM__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram__pack
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *
       opentelemetry__proto__metrics__v1__exponential_histogram__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__exponential_histogram__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__exponential_histogram__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__ExponentialHistogram *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__summary__init
                     (Opentelemetry__Proto__Metrics__V1__Summary         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Summary init_value = OPENTELEMETRY__PROTO__METRICS__V1__SUMMARY__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__summary__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Summary *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__summary__pack
                     (const Opentelemetry__Proto__Metrics__V1__Summary *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__summary__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Summary *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Summary *
       opentelemetry__proto__metrics__v1__summary__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Summary *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__summary__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__summary__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Summary *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__number_data_point__init
                     (Opentelemetry__Proto__Metrics__V1__NumberDataPoint         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__NumberDataPoint init_value = OPENTELEMETRY__PROTO__METRICS__V1__NUMBER_DATA_POINT__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__number_data_point__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__NumberDataPoint *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__number_data_point__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__number_data_point__pack
                     (const Opentelemetry__Proto__Metrics__V1__NumberDataPoint *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__number_data_point__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__number_data_point__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__NumberDataPoint *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__number_data_point__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__NumberDataPoint *
       opentelemetry__proto__metrics__v1__number_data_point__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__NumberDataPoint *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__number_data_point__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__number_data_point__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__NumberDataPoint *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__number_data_point__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__histogram_data_point__init
                     (Opentelemetry__Proto__Metrics__V1__HistogramDataPoint         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__HistogramDataPoint init_value = OPENTELEMETRY__PROTO__METRICS__V1__HISTOGRAM_DATA_POINT__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__histogram_data_point__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram_data_point__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__histogram_data_point__pack
                     (const Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram_data_point__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__histogram_data_point__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram_data_point__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *
       opentelemetry__proto__metrics__v1__histogram_data_point__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__histogram_data_point__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__histogram_data_point__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__HistogramDataPoint *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__histogram_data_point__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__init
                     (Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets init_value = OPENTELEMETRY__PROTO__METRICS__V1__EXPONENTIAL_HISTOGRAM_DATA_POINT__BUCKETS__INIT;
  *message = init_value;
}
void   opentelemetry__proto__metrics__v1__exponential_histogram_data_point__init
                     (Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint init_value = OPENTELEMETRY__PROTO__METRICS__V1__EXPONENTIAL_HISTOGRAM_DATA_POINT__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram_data_point__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram_data_point__pack
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__exponential_histogram_data_point__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *
       opentelemetry__proto__metrics__v1__exponential_histogram_data_point__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__exponential_histogram_data_point__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__init
                     (Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile init_value = OPENTELEMETRY__PROTO__METRICS__V1__SUMMARY_DATA_POINT__VALUE_AT_QUANTILE__INIT;
  *message = init_value;
}
void   opentelemetry__proto__metrics__v1__summary_data_point__init
                     (Opentelemetry__Proto__Metrics__V1__SummaryDataPoint         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__SummaryDataPoint init_value = OPENTELEMETRY__PROTO__METRICS__V1__SUMMARY_DATA_POINT__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__summary_data_point__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary_data_point__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__summary_data_point__pack
                     (const Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary_data_point__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__summary_data_point__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary_data_point__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *
       opentelemetry__proto__metrics__v1__summary_data_point__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__summary_data_point__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__summary_data_point__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__SummaryDataPoint *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__summary_data_point__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   opentelemetry__proto__metrics__v1__exemplar__init
                     (Opentelemetry__Proto__Metrics__V1__Exemplar         *message)
{
  static const Opentelemetry__Proto__Metrics__V1__Exemplar init_value = OPENTELEMETRY__PROTO__METRICS__V1__EXEMPLAR__INIT;
  *message = init_value;
}
size_t opentelemetry__proto__metrics__v1__exemplar__get_packed_size
                     (const Opentelemetry__Proto__Metrics__V1__Exemplar *message)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exemplar__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t opentelemetry__proto__metrics__v1__exemplar__pack
                     (const Opentelemetry__Proto__Metrics__V1__Exemplar *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exemplar__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t opentelemetry__proto__metrics__v1__exemplar__pack_to_buffer
                     (const Opentelemetry__Proto__Metrics__V1__Exemplar *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exemplar__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Opentelemetry__Proto__Metrics__V1__Exemplar *
       opentelemetry__proto__metrics__v1__exemplar__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Opentelemetry__Proto__Metrics__V1__Exemplar *)
     protobuf_c_message_unpack (&opentelemetry__proto__metrics__v1__exemplar__descriptor,
                                allocator, len, data);
}
void   opentelemetry__proto__metrics__v1__exemplar__free_unpacked
                     (Opentelemetry__Proto__Metrics__V1__Exemplar *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &opentelemetry__proto__metrics__v1__exemplar__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__metrics_data__field_descriptors[1] =
{
  {
    "resource_metrics",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__MetricsData, n_resource_metrics),
    offsetof(Opentelemetry__Proto__Metrics__V1__MetricsData, resource_metrics),
    &opentelemetry__proto__metrics__v1__resource_metrics__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__metrics_data__field_indices_by_name[] = {
  0,   /* field[0] = resource_metrics */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__metrics_data__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__metrics_data__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.MetricsData",
  "MetricsData",
  "Opentelemetry__Proto__Metrics__V1__MetricsData",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__MetricsData),
  1,
  opentelemetry__proto__metrics__v1__metrics_data__field_descriptors,
  opentelemetry__proto__metrics__v1__metrics_data__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__metrics_data__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__metrics_data__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__resource_metrics__field_descriptors[3] =
{
  {
    "resource",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ResourceMetrics, resource),
    &opentelemetry__proto__resource__v1__resource__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "scope_metrics",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ResourceMetrics, n_scope_metrics),
    offsetof(Opentelemetry__Proto__Metrics__V1__ResourceMetrics, scope_metrics),
    &opentelemetry__proto__metrics__v1__scope_metrics__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "schema_url",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ResourceMetrics, schema_url),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__resource_metrics__field_indices_by_name[] = {
  0,   /* field[0] = resource */
  2,   /* field[2] = schema_url */
  1,   /* field[1] = scope_metrics */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__resource_metrics__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__resource_metrics__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.ResourceMetrics",
  "ResourceMetrics",
  "Opentelemetry__Proto__Metrics__V1__ResourceMetrics",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__ResourceMetrics),
  3,
  opentelemetry__proto__metrics__v1__resource_metrics__field_descriptors,
  opentelemetry__proto__metrics__v1__resource_metrics__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__resource_metrics__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__resource_metrics__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__scope_metrics__field_descriptors[3] =
{
  {
    "scope",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ScopeMetrics, scope),
    &opentelemetry__proto__common__v1__instrumentation_scope__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "metrics",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ScopeMetrics, n_metrics),
    offsetof(Opentelemetry__Proto__Metrics__V1__ScopeMetrics, metrics),
    &opentelemetry__proto__metrics__v1__metric__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "schema_url",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ScopeMetrics, schema_url),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__scope_metrics__field_indices_by_name[] = {
  1,   /* field[1] = metrics */
  2,   /* field[2] = schema_url */
  0,   /* field[0] = scope */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__scope_metrics__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__scope_metrics__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.ScopeMetrics",
  "ScopeMetrics",
  "Opentelemetry__Proto__Metrics__V1__ScopeMetrics",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__ScopeMetrics),
  3,
  opentelemetry__proto__metrics__v1__scope_metrics__field_descriptors,
  opentelemetry__proto__metrics__v1__scope_metrics__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__scope_metrics__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__scope_metrics__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__metric__field_descriptors[9] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "description",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, description),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "unit",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, unit),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "gauge",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, data_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, gauge),
    &opentelemetry__proto__metrics__v1__gauge__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sum",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, data_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, sum),
    &opentelemetry__proto__metrics__v1__sum__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "histogram",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, data_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, histogram),
    &opentelemetry__proto__metrics__v1__histogram__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "exponential_histogram",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, data_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, exponential_histogram),
    &opentelemetry__proto__metrics__v1__exponential_histogram__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "summary",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, data_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, summary),
    &opentelemetry__proto__metrics__v1__summary__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "metadata",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, n_metadata),
    offsetof(Opentelemetry__Proto__Metrics__V1__Metric, metadata),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__metric__field_indices_by_name[] = {
  1,   /* field[1] = description */
  6,   /* field[6] = exponential_histogram */
  3,   /* field[3] = gauge */
  5,   /* field[5] = histogram */
  8,   /* field[8] = metadata */
  0,   /* field[0] = name */
  4,   /* field[4] = sum */
  7,   /* field[7] = summary */
  2,   /* field[2] = unit */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__metric__number_ranges[4 + 1] =
{
  { 1, 0 },
  { 5, 3 },
  { 7, 4 },
  { 9, 5 },
  { 0, 9 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__metric__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Metric",
  "Metric",
  "Opentelemetry__Proto__Metrics__V1__Metric",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Metric),
  9,
  opentelemetry__proto__metrics__v1__metric__field_descriptors,
  opentelemetry__proto__metrics__v1__metric__field_indices_by_name,
  4,  opentelemetry__proto__metrics__v1__metric__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__metric__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__gauge__field_descriptors[1] =
{
  {
    "data_points",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Gauge, n_data_points),
    offsetof(Opentelemetry__Proto__Metrics__V1__Gauge, data_points),
    &opentelemetry__proto__metrics__v1__number_data_point__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__gauge__field_indices_by_name[] = {
  0,   /* field[0] = data_points */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__gauge__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__gauge__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Gauge",
  "Gauge",
  "Opentelemetry__Proto__Metrics__V1__Gauge",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Gauge),
  1,
  opentelemetry__proto__metrics__v1__gauge__field_descriptors,
  opentelemetry__proto__metrics__v1__gauge__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__gauge__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__gauge__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__sum__field_descriptors[3] =
{
  {
    "data_points",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Sum, n_data_points),
    offsetof(Opentelemetry__Proto__Metrics__V1__Sum, data_points),
    &opentelemetry__proto__metrics__v1__number_data_point__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "aggregation_temporality",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Sum, aggregation_temporality),
    &opentelemetry__proto__metrics__v1__aggregation_temporality__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "is_monotonic",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BOOL,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Sum, is_monotonic),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__sum__field_indices_by_name[] = {
  1,   /* field[1] = aggregation_temporality */
  0,   /* field[0] = data_points */
  2,   /* field[2] = is_monotonic */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__sum__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__sum__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Sum",
  "Sum",
  "Opentelemetry__Proto__Metrics__V1__Sum",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Sum),
  3,
  opentelemetry__proto__metrics__v1__sum__field_descriptors,
  opentelemetry__proto__metrics__v1__sum__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__sum__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__sum__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__histogram__field_descriptors[2] =
{
  {
    "data_points",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Histogram, n_data_points),
    offsetof(Opentelemetry__Proto__Metrics__V1__Histogram, data_points),
    &opentelemetry__proto__metrics__v1__histogram_data_point__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "aggregation_temporality",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Histogram, aggregation_temporality),
    &opentelemetry__proto__metrics__v1__aggregation_temporality__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__histogram__field_indices_by_name[] = {
  1,   /* field[1] = aggregation_temporality */
  0,   /* field[0] = data_points */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__histogram__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__histogram__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Histogram",
  "Histogram",
  "Opentelemetry__Proto__Metrics__V1__Histogram",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Histogram),
  2,
  opentelemetry__proto__metrics__v1__histogram__field_descriptors,
  opentelemetry__proto__metrics__v1__histogram__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__histogram__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__histogram__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__exponential_histogram__field_descriptors[2] =
{
  {
    "data_points",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogram, n_data_points),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogram, data_points),
    &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "aggregation_temporality",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogram, aggregation_temporality),
    &opentelemetry__proto__metrics__v1__aggregation_temporality__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__exponential_histogram__field_indices_by_name[] = {
  1,   /* field[1] = aggregation_temporality */
  0,   /* field[0] = data_points */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__exponential_histogram__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__exponential_histogram__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.ExponentialHistogram",
  "ExponentialHistogram",
  "Opentelemetry__Proto__Metrics__V1__ExponentialHistogram",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogram),
  2,
  opentelemetry__proto__metrics__v1__exponential_histogram__field_descriptors,
  opentelemetry__proto__metrics__v1__exponential_histogram__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__exponential_histogram__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__exponential_histogram__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__summary__field_descriptors[1] =
{
  {
    "data_points",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Summary, n_data_points),
    offsetof(Opentelemetry__Proto__Metrics__V1__Summary, data_points),
    &opentelemetry__proto__metrics__v1__summary_data_point__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__summary__field_indices_by_name[] = {
  0,   /* field[0] = data_points */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__summary__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__summary__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Summary",
  "Summary",
  "Opentelemetry__Proto__Metrics__V1__Summary",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Summary),
  1,
  opentelemetry__proto__metrics__v1__summary__field_descriptors,
  opentelemetry__proto__metrics__v1__summary__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__summary__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__summary__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__number_data_point__field_descriptors[7] =
{
  {
    "start_time_unix_nano",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, start_time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time_unix_nano",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "as_double",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, value_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, as_double),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "exemplars",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, n_exemplars),
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, exemplars),
    &opentelemetry__proto__metrics__v1__exemplar__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "as_int",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SFIXED64,
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, value_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, as_int),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attributes",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, n_attributes),
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, attributes),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "flags",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint, flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__number_data_point__field_indices_by_name[] = {
  2,   /* field[2] = as_double */
  4,   /* field[4] = as_int */
  5,   /* field[5] = attributes */
  3,   /* field[3] = exemplars */
  6,   /* field[6] = flags */
  0,   /* field[0] = start_time_unix_nano */
  1,   /* field[1] = time_unix_nano */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__number_data_point__number_ranges[1 + 1] =
{
  { 2, 0 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__number_data_point__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.NumberDataPoint",
  "NumberDataPoint",
  "Opentelemetry__Proto__Metrics__V1__NumberDataPoint",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__NumberDataPoint),
  7,
  opentelemetry__proto__metrics__v1__number_data_point__field_descriptors,
  opentelemetry__proto__metrics__v1__number_data_point__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__number_data_point__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__number_data_point__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__histogram_data_point__field_descriptors[11] =
{
  {
    "start_time_unix_nano",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, start_time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time_unix_nano",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "count",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, count),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sum",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, has_sum),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, sum),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "bucket_counts",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, n_bucket_counts),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, bucket_counts),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "explicit_bounds",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, n_explicit_bounds),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, explicit_bounds),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "exemplars",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, n_exemplars),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, exemplars),
    &opentelemetry__proto__metrics__v1__exemplar__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attributes",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, n_attributes),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, attributes),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "flags",
    10,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "min",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, has_min),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, min),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "max",
    12,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, has_max),
    offsetof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint, max),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__histogram_data_point__field_indices_by_name[] = {
  7,   /* field[7] = attributes */
  4,   /* field[4] = bucket_counts */
  2,   /* field[2] = count */
  6,   /* field[6] = exemplars */
  5,   /* field[5] = explicit_bounds */
  8,   /* field[8] = flags */
  10,   /* field[10] = max */
  9,   /* field[9] = min */
  0,   /* field[0] = start_time_unix_nano */
  3,   /* field[3] = sum */
  1,   /* field[1] = time_unix_nano */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__histogram_data_point__number_ranges[1 + 1] =
{
  { 2, 0 },
  { 0, 11 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__histogram_data_point__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.HistogramDataPoint",
  "HistogramDataPoint",
  "Opentelemetry__Proto__Metrics__V1__HistogramDataPoint",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__HistogramDataPoint),
  11,
  opentelemetry__proto__metrics__v1__histogram_data_point__field_descriptors,
  opentelemetry__proto__metrics__v1__histogram_data_point__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__histogram_data_point__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__histogram_data_point__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__field_descriptors[2] =
{
  {
    "offset",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_SINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets, offset),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "bucket_counts",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets, n_bucket_counts),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets, bucket_counts),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__field_indices_by_name[] = {
  1,   /* field[1] = bucket_counts */
  0,   /* field[0] = offset */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets",
  "Buckets",
  "Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint__Buckets),
  2,
  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__field_descriptors,
  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__exponential_histogram_data_point__field_descriptors[14] =
{
  {
    "attributes",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, n_attributes),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, attributes),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "start_time_unix_nano",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, start_time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time_unix_nano",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "count",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, count),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sum",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, has_sum),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, sum),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "scale",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_SINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, scale),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "zero_count",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, zero_count),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "positive",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, positive),
    &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "negative",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, negative),
    &opentelemetry__proto__metrics__v1__exponential_histogram_data_point__buckets__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "flags",
    10,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "exemplars",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, n_exemplars),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, exemplars),
    &opentelemetry__proto__metrics__v1__exemplar__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "min",
    12,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, has_min),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, min),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "max",
    13,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, has_max),
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, max),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "zero_threshold",
    14,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_DOUBLE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint, zero_threshold),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__exponential_histogram_data_point__field_indices_by_name[] = {
  0,   /* field[0] = attributes */
  3,   /* field[3] = count */
  10,   /* field[10] = exemplars */
  9,   /* field[9] = flags */
  12,   /* field[12] = max */
  11,   /* field[11] = min */
  8,   /* field[8] = negative */
  7,   /* field[7] = positive */
  5,   /* field[5] = scale */
  1,   /* field[1] = start_time_unix_nano */
  4,   /* field[4] = sum */
  2,   /* field[2] = time_unix_nano */
  6,   /* field[6] = zero_count */
  13,   /* field[13] = zero_threshold */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__exponential_histogram_data_point__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 14 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__exponential_histogram_data_point__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint",
  "ExponentialHistogramDataPoint",
  "Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__ExponentialHistogramDataPoint),
  14,
  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__field_descriptors,
  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__exponential_histogram_data_point__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__exponential_histogram_data_point__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__field_descriptors[2] =
{
  {
    "quantile",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_DOUBLE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile, quantile),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_DOUBLE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile, value),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__field_indices_by_name[] = {
  0,   /* field[0] = quantile */
  1,   /* field[1] = value */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile",
  "ValueAtQuantile",
  "Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint__ValueAtQuantile),
  2,
  opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__field_descriptors,
  opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__summary_data_point__field_descriptors[7] =
{
  {
    "start_time_unix_nano",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, start_time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "time_unix_nano",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "count",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, count),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sum",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_DOUBLE,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, sum),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantile_values",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, n_quantile_values),
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, quantile_values),
    &opentelemetry__proto__metrics__v1__summary_data_point__value_at_quantile__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attributes",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, n_attributes),
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, attributes),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "flags",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint, flags),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__summary_data_point__field_indices_by_name[] = {
  5,   /* field[5] = attributes */
  2,   /* field[2] = count */
  6,   /* field[6] = flags */
  4,   /* field[4] = quantile_values */
  0,   /* field[0] = start_time_unix_nano */
  3,   /* field[3] = sum */
  1,   /* field[1] = time_unix_nano */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__summary_data_point__number_ranges[1 + 1] =
{
  { 2, 0 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__summary_data_point__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.SummaryDataPoint",
  "SummaryDataPoint",
  "Opentelemetry__Proto__Metrics__V1__SummaryDataPoint",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__SummaryDataPoint),
  7,
  opentelemetry__proto__metrics__v1__summary_data_point__field_descriptors,
  opentelemetry__proto__metrics__v1__summary_data_point__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__summary_data_point__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__summary_data_point__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor opentelemetry__proto__metrics__v1__exemplar__field_descriptors[6] =
{
  {
    "time_unix_nano",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FIXED64,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, time_unix_nano),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "as_double",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, value_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, as_double),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "span_id",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, span_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "trace_id",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, trace_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "as_int",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SFIXED64,
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, value_case),
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, as_int),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "filtered_attributes",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, n_filtered_attributes),
    offsetof(Opentelemetry__Proto__Metrics__V1__Exemplar, filtered_attributes),
    &opentelemetry__proto__common__v1__key_value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned opentelemetry__proto__metrics__v1__exemplar__field_indices_by_name[] = {
  1,   /* field[1] = as_double */
  4,   /* field[4] = as_int */
  5,   /* field[5] = filtered_attributes */
  2,   /* field[2] = span_id */
  0,   /* field[0] = time_unix_nano */
  3,   /* field[3] = trace_id */
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__exemplar__number_ranges[1 + 1] =
{
  { 2, 0 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor opentelemetry__proto__metrics__v1__exemplar__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.Exemplar",
  "Exemplar",
  "Opentelemetry__Proto__Metrics__V1__Exemplar",
  "opentelemetry.proto.metrics.v1",
  sizeof(Opentelemetry__Proto__Metrics__V1__Exemplar),
  6,
  opentelemetry__proto__metrics__v1__exemplar__field_descriptors,
  opentelemetry__proto__metrics__v1__exemplar__field_indices_by_name,
  1,  opentelemetry__proto__metrics__v1__exemplar__number_ranges,
  (ProtobufCMessageInit) opentelemetry__proto__metrics__v1__exemplar__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue opentelemetry__proto__metrics__v1__aggregation_temporality__enum_values_by_number[3] =
{
  { "AGGREGATION_TEMPORALITY_UNSPECIFIED", "OPENTELEMETRY__PROTO__METRICS__V1__AGGREGATION_TEMPORALITY__AGGREGATION_TEMPORALITY_UNSPECIFIED", 0 },
  { "AGGREGATION_TEMPORALITY_DELTA", "OPENTELEMETRY__PROTO__METRICS__V1__AGGREGATION_TEMPORALITY__AGGREGATION_TEMPORALITY_DELTA", 1 },
  { "AGGREGATION_TEMPORALITY_CUMULATIVE", "OPENTELEMETRY__PROTO__METRICS__V1__AGGREGATION_TEMPORALITY__AGGREGATION_TEMPORALITY_CUMULATIVE", 2 },
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__aggregation_temporality__value_ranges[] = {
{0, 0},{0, 3}
};
static const ProtobufCEnumValueIndex opentelemetry__proto__metrics__v1__aggregation_temporality__enum_values_by_name[3] =
{
  { "AGGREGATION_TEMPORALITY_CUMULATIVE", 2 },
  { "AGGREGATION_TEMPORALITY_DELTA", 1 },
  { "AGGREGATION_TEMPORALITY_UNSPECIFIED", 0 },
};
const ProtobufCEnumDescriptor opentelemetry__proto__metrics__v1__aggregation_temporality__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.AggregationTemporality",
  "AggregationTemporality",
  "Opentelemetry__Proto__Metrics__V1__AggregationTemporality",
  "opentelemetry.proto.metrics.v1",
  3,
  opentelemetry__proto__metrics__v1__aggregation_temporality__enum_values_by_number,
  3,
  opentelemetry__proto__metrics__v1__aggregation_temporality__enum_values_by_name,
  1,
  opentelemetry__proto__metrics__v1__aggregation_temporality__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue opentelemetry__proto__metrics__v1__data_point_flags__enum_values_by_number[2] =
{
  { "DATA_POINT_FLAGS_DO_NOT_USE", "OPENTELEMETRY__PROTO__METRICS__V1__DATA_POINT_FLAGS__DATA_POINT_FLAGS_DO_NOT_USE", 0 },
  { "DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK", "OPENTELEMETRY__PROTO__METRICS__V1__DATA_POINT_FLAGS__DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK", 1 },
};
static const ProtobufCIntRange opentelemetry__proto__metrics__v1__data_point_flags__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex opentelemetry__proto__metrics__v1__data_point_flags__enum_values_by_name[2] =
{
  { "DATA_POINT_FLAGS_DO_NOT_USE", 0 },
  { "DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK", 1 },
};
const ProtobufCEnumDescriptor opentelemetry__proto__metrics__v1__data_point_flags__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "opentelemetry.proto.metrics.v1.DataPointFlags",
  "DataPointFlags",
  "Opentelemetry__Proto__Metrics__V1__DataPointFlags",
  "opentelemetry.proto.metrics.v1",
  2,
  opentelemetry__proto__metrics__v1__data_point_flags__enum_values_by_number,
  2,
  opentelemetry__proto__metrics__v1__data_point_flags__enum_values_by_name,
  1,
  opentelemetry__proto__metrics__v1__data_point_flags__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
