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

#ifndef PROTOBUF_C_prometheus_2eproto__INCLUDED
#define PROTOBUF_C_prometheus_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif


typedef struct Io__Prometheus__Client__LabelPair Io__Prometheus__Client__LabelPair;
typedef struct Io__Prometheus__Client__Gauge Io__Prometheus__Client__Gauge;
typedef struct Io__Prometheus__Client__Counter Io__Prometheus__Client__Counter;
typedef struct Io__Prometheus__Client__Quantile Io__Prometheus__Client__Quantile;
typedef struct Io__Prometheus__Client__Summary Io__Prometheus__Client__Summary;
typedef struct Io__Prometheus__Client__Untyped Io__Prometheus__Client__Untyped;
typedef struct Io__Prometheus__Client__Histogram Io__Prometheus__Client__Histogram;
typedef struct Io__Prometheus__Client__Bucket Io__Prometheus__Client__Bucket;
typedef struct Io__Prometheus__Client__Metric Io__Prometheus__Client__Metric;
typedef struct Io__Prometheus__Client__MetricFamily Io__Prometheus__Client__MetricFamily;


/* --- enums --- */

typedef enum _Io__Prometheus__Client__MetricType {
  IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER = 0,
  IO__PROMETHEUS__CLIENT__METRIC_TYPE__GAUGE = 1,
  IO__PROMETHEUS__CLIENT__METRIC_TYPE__SUMMARY = 2,
  IO__PROMETHEUS__CLIENT__METRIC_TYPE__UNTYPED = 3,
  IO__PROMETHEUS__CLIENT__METRIC_TYPE__HISTOGRAM = 4
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(IO__PROMETHEUS__CLIENT__METRIC_TYPE)
} Io__Prometheus__Client__MetricType;

/* --- messages --- */

struct  Io__Prometheus__Client__LabelPair
{
  ProtobufCMessage base;
  char *name;
  char *value;
};
#define IO__PROMETHEUS__CLIENT__LABEL_PAIR__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__label_pair__descriptor) \
, NULL, NULL }


struct  Io__Prometheus__Client__Gauge
{
  ProtobufCMessage base;
  protobuf_c_boolean has_value;
  double value;
};
#define IO__PROMETHEUS__CLIENT__GAUGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__gauge__descriptor) \
, 0, 0 }


struct  Io__Prometheus__Client__Counter
{
  ProtobufCMessage base;
  protobuf_c_boolean has_value;
  double value;
};
#define IO__PROMETHEUS__CLIENT__COUNTER__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__counter__descriptor) \
, 0, 0 }


struct  Io__Prometheus__Client__Quantile
{
  ProtobufCMessage base;
  protobuf_c_boolean has_quantile;
  double quantile;
  protobuf_c_boolean has_value;
  double value;
};
#define IO__PROMETHEUS__CLIENT__QUANTILE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__quantile__descriptor) \
, 0, 0, 0, 0 }


struct  Io__Prometheus__Client__Summary
{
  ProtobufCMessage base;
  protobuf_c_boolean has_sample_count;
  uint64_t sample_count;
  protobuf_c_boolean has_sample_sum;
  double sample_sum;
  size_t n_quantile;
  Io__Prometheus__Client__Quantile **quantile;
};
#define IO__PROMETHEUS__CLIENT__SUMMARY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__summary__descriptor) \
, 0, 0, 0, 0, 0,NULL }


struct  Io__Prometheus__Client__Untyped
{
  ProtobufCMessage base;
  protobuf_c_boolean has_value;
  double value;
};
#define IO__PROMETHEUS__CLIENT__UNTYPED__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__untyped__descriptor) \
, 0, 0 }


struct  Io__Prometheus__Client__Histogram
{
  ProtobufCMessage base;
  protobuf_c_boolean has_sample_count;
  uint64_t sample_count;
  protobuf_c_boolean has_sample_sum;
  double sample_sum;
  /*
   * Ordered in increasing order of upper_bound, +Inf bucket is optional.
   */
  size_t n_bucket;
  Io__Prometheus__Client__Bucket **bucket;
};
#define IO__PROMETHEUS__CLIENT__HISTOGRAM__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__histogram__descriptor) \
, 0, 0, 0, 0, 0,NULL }


struct  Io__Prometheus__Client__Bucket
{
  ProtobufCMessage base;
  /*
   * Cumulative in increasing order.
   */
  protobuf_c_boolean has_cumulative_count;
  uint64_t cumulative_count;
  /*
   * Inclusive.
   */
  protobuf_c_boolean has_upper_bound;
  double upper_bound;
};
#define IO__PROMETHEUS__CLIENT__BUCKET__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__bucket__descriptor) \
, 0, 0, 0, 0 }


struct  Io__Prometheus__Client__Metric
{
  ProtobufCMessage base;
  size_t n_label;
  Io__Prometheus__Client__LabelPair **label;
  Io__Prometheus__Client__Gauge *gauge;
  Io__Prometheus__Client__Counter *counter;
  Io__Prometheus__Client__Summary *summary;
  Io__Prometheus__Client__Untyped *untyped;
  Io__Prometheus__Client__Histogram *histogram;
  protobuf_c_boolean has_timestamp_ms;
  int64_t timestamp_ms;
};
#define IO__PROMETHEUS__CLIENT__METRIC__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__metric__descriptor) \
, 0,NULL, NULL, NULL, NULL, NULL, NULL, 0, 0 }


struct  Io__Prometheus__Client__MetricFamily
{
  ProtobufCMessage base;
  char *name;
  char *help;
  protobuf_c_boolean has_type;
  Io__Prometheus__Client__MetricType type;
  size_t n_metric;
  Io__Prometheus__Client__Metric **metric;
};
#define IO__PROMETHEUS__CLIENT__METRIC_FAMILY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&io__prometheus__client__metric_family__descriptor) \
, NULL, NULL, 0, IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER, 0,NULL }


/* Io__Prometheus__Client__LabelPair methods */
void   io__prometheus__client__label_pair__init
                     (Io__Prometheus__Client__LabelPair         *message);
size_t io__prometheus__client__label_pair__get_packed_size
                     (const Io__Prometheus__Client__LabelPair   *message);
size_t io__prometheus__client__label_pair__pack
                     (const Io__Prometheus__Client__LabelPair   *message,
                      uint8_t             *out);
size_t io__prometheus__client__label_pair__pack_to_buffer
                     (const Io__Prometheus__Client__LabelPair   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__LabelPair *
       io__prometheus__client__label_pair__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__label_pair__free_unpacked
                     (Io__Prometheus__Client__LabelPair *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Gauge methods */
void   io__prometheus__client__gauge__init
                     (Io__Prometheus__Client__Gauge         *message);
size_t io__prometheus__client__gauge__get_packed_size
                     (const Io__Prometheus__Client__Gauge   *message);
size_t io__prometheus__client__gauge__pack
                     (const Io__Prometheus__Client__Gauge   *message,
                      uint8_t             *out);
size_t io__prometheus__client__gauge__pack_to_buffer
                     (const Io__Prometheus__Client__Gauge   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Gauge *
       io__prometheus__client__gauge__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__gauge__free_unpacked
                     (Io__Prometheus__Client__Gauge *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Counter methods */
void   io__prometheus__client__counter__init
                     (Io__Prometheus__Client__Counter         *message);
size_t io__prometheus__client__counter__get_packed_size
                     (const Io__Prometheus__Client__Counter   *message);
size_t io__prometheus__client__counter__pack
                     (const Io__Prometheus__Client__Counter   *message,
                      uint8_t             *out);
size_t io__prometheus__client__counter__pack_to_buffer
                     (const Io__Prometheus__Client__Counter   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Counter *
       io__prometheus__client__counter__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__counter__free_unpacked
                     (Io__Prometheus__Client__Counter *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Quantile methods */
void   io__prometheus__client__quantile__init
                     (Io__Prometheus__Client__Quantile         *message);
size_t io__prometheus__client__quantile__get_packed_size
                     (const Io__Prometheus__Client__Quantile   *message);
size_t io__prometheus__client__quantile__pack
                     (const Io__Prometheus__Client__Quantile   *message,
                      uint8_t             *out);
size_t io__prometheus__client__quantile__pack_to_buffer
                     (const Io__Prometheus__Client__Quantile   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Quantile *
       io__prometheus__client__quantile__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__quantile__free_unpacked
                     (Io__Prometheus__Client__Quantile *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Summary methods */
void   io__prometheus__client__summary__init
                     (Io__Prometheus__Client__Summary         *message);
size_t io__prometheus__client__summary__get_packed_size
                     (const Io__Prometheus__Client__Summary   *message);
size_t io__prometheus__client__summary__pack
                     (const Io__Prometheus__Client__Summary   *message,
                      uint8_t             *out);
size_t io__prometheus__client__summary__pack_to_buffer
                     (const Io__Prometheus__Client__Summary   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Summary *
       io__prometheus__client__summary__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__summary__free_unpacked
                     (Io__Prometheus__Client__Summary *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Untyped methods */
void   io__prometheus__client__untyped__init
                     (Io__Prometheus__Client__Untyped         *message);
size_t io__prometheus__client__untyped__get_packed_size
                     (const Io__Prometheus__Client__Untyped   *message);
size_t io__prometheus__client__untyped__pack
                     (const Io__Prometheus__Client__Untyped   *message,
                      uint8_t             *out);
size_t io__prometheus__client__untyped__pack_to_buffer
                     (const Io__Prometheus__Client__Untyped   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Untyped *
       io__prometheus__client__untyped__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__untyped__free_unpacked
                     (Io__Prometheus__Client__Untyped *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Histogram methods */
void   io__prometheus__client__histogram__init
                     (Io__Prometheus__Client__Histogram         *message);
size_t io__prometheus__client__histogram__get_packed_size
                     (const Io__Prometheus__Client__Histogram   *message);
size_t io__prometheus__client__histogram__pack
                     (const Io__Prometheus__Client__Histogram   *message,
                      uint8_t             *out);
size_t io__prometheus__client__histogram__pack_to_buffer
                     (const Io__Prometheus__Client__Histogram   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Histogram *
       io__prometheus__client__histogram__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__histogram__free_unpacked
                     (Io__Prometheus__Client__Histogram *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Bucket methods */
void   io__prometheus__client__bucket__init
                     (Io__Prometheus__Client__Bucket         *message);
size_t io__prometheus__client__bucket__get_packed_size
                     (const Io__Prometheus__Client__Bucket   *message);
size_t io__prometheus__client__bucket__pack
                     (const Io__Prometheus__Client__Bucket   *message,
                      uint8_t             *out);
size_t io__prometheus__client__bucket__pack_to_buffer
                     (const Io__Prometheus__Client__Bucket   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Bucket *
       io__prometheus__client__bucket__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__bucket__free_unpacked
                     (Io__Prometheus__Client__Bucket *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__Metric methods */
void   io__prometheus__client__metric__init
                     (Io__Prometheus__Client__Metric         *message);
size_t io__prometheus__client__metric__get_packed_size
                     (const Io__Prometheus__Client__Metric   *message);
size_t io__prometheus__client__metric__pack
                     (const Io__Prometheus__Client__Metric   *message,
                      uint8_t             *out);
size_t io__prometheus__client__metric__pack_to_buffer
                     (const Io__Prometheus__Client__Metric   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__Metric *
       io__prometheus__client__metric__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__metric__free_unpacked
                     (Io__Prometheus__Client__Metric *message,
                      ProtobufCAllocator *allocator);
/* Io__Prometheus__Client__MetricFamily methods */
void   io__prometheus__client__metric_family__init
                     (Io__Prometheus__Client__MetricFamily         *message);
size_t io__prometheus__client__metric_family__get_packed_size
                     (const Io__Prometheus__Client__MetricFamily   *message);
size_t io__prometheus__client__metric_family__pack
                     (const Io__Prometheus__Client__MetricFamily   *message,
                      uint8_t             *out);
size_t io__prometheus__client__metric_family__pack_to_buffer
                     (const Io__Prometheus__Client__MetricFamily   *message,
                      ProtobufCBuffer     *buffer);
Io__Prometheus__Client__MetricFamily *
       io__prometheus__client__metric_family__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   io__prometheus__client__metric_family__free_unpacked
                     (Io__Prometheus__Client__MetricFamily *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Io__Prometheus__Client__LabelPair_Closure)
                 (const Io__Prometheus__Client__LabelPair *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Gauge_Closure)
                 (const Io__Prometheus__Client__Gauge *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Counter_Closure)
                 (const Io__Prometheus__Client__Counter *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Quantile_Closure)
                 (const Io__Prometheus__Client__Quantile *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Summary_Closure)
                 (const Io__Prometheus__Client__Summary *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Untyped_Closure)
                 (const Io__Prometheus__Client__Untyped *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Histogram_Closure)
                 (const Io__Prometheus__Client__Histogram *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Bucket_Closure)
                 (const Io__Prometheus__Client__Bucket *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__Metric_Closure)
                 (const Io__Prometheus__Client__Metric *message,
                  void *closure_data);
typedef void (*Io__Prometheus__Client__MetricFamily_Closure)
                 (const Io__Prometheus__Client__MetricFamily *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    io__prometheus__client__metric_type__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__label_pair__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__gauge__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__counter__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__quantile__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__summary__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__untyped__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__histogram__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__bucket__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__metric__descriptor;
extern const ProtobufCMessageDescriptor io__prometheus__client__metric_family__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_prometheus_2eproto__INCLUDED */
