// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: prometheus/remote/remote.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_prometheus_2fremote_2fremote_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_prometheus_2fremote_2fremote_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021006 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "prometheus/remote/types.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_prometheus_2fremote_2fremote_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_prometheus_2fremote_2fremote_2eproto {
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_prometheus_2fremote_2fremote_2eproto;
namespace prometheus {
class ChunkedReadResponse;
struct ChunkedReadResponseDefaultTypeInternal;
extern ChunkedReadResponseDefaultTypeInternal _ChunkedReadResponse_default_instance_;
class Query;
struct QueryDefaultTypeInternal;
extern QueryDefaultTypeInternal _Query_default_instance_;
class QueryResult;
struct QueryResultDefaultTypeInternal;
extern QueryResultDefaultTypeInternal _QueryResult_default_instance_;
class ReadRequest;
struct ReadRequestDefaultTypeInternal;
extern ReadRequestDefaultTypeInternal _ReadRequest_default_instance_;
class ReadResponse;
struct ReadResponseDefaultTypeInternal;
extern ReadResponseDefaultTypeInternal _ReadResponse_default_instance_;
class WriteRequest;
struct WriteRequestDefaultTypeInternal;
extern WriteRequestDefaultTypeInternal _WriteRequest_default_instance_;
}  // namespace prometheus
PROTOBUF_NAMESPACE_OPEN
template<> ::prometheus::ChunkedReadResponse* Arena::CreateMaybeMessage<::prometheus::ChunkedReadResponse>(Arena*);
template<> ::prometheus::Query* Arena::CreateMaybeMessage<::prometheus::Query>(Arena*);
template<> ::prometheus::QueryResult* Arena::CreateMaybeMessage<::prometheus::QueryResult>(Arena*);
template<> ::prometheus::ReadRequest* Arena::CreateMaybeMessage<::prometheus::ReadRequest>(Arena*);
template<> ::prometheus::ReadResponse* Arena::CreateMaybeMessage<::prometheus::ReadResponse>(Arena*);
template<> ::prometheus::WriteRequest* Arena::CreateMaybeMessage<::prometheus::WriteRequest>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace prometheus {

enum ReadRequest_ResponseType : int {
  ReadRequest_ResponseType_SAMPLES = 0,
  ReadRequest_ResponseType_STREAMED_XOR_CHUNKS = 1,
  ReadRequest_ResponseType_ReadRequest_ResponseType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  ReadRequest_ResponseType_ReadRequest_ResponseType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool ReadRequest_ResponseType_IsValid(int value);
constexpr ReadRequest_ResponseType ReadRequest_ResponseType_ResponseType_MIN = ReadRequest_ResponseType_SAMPLES;
constexpr ReadRequest_ResponseType ReadRequest_ResponseType_ResponseType_MAX = ReadRequest_ResponseType_STREAMED_XOR_CHUNKS;
constexpr int ReadRequest_ResponseType_ResponseType_ARRAYSIZE = ReadRequest_ResponseType_ResponseType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ReadRequest_ResponseType_descriptor();
template<typename T>
inline const std::string& ReadRequest_ResponseType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ReadRequest_ResponseType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ReadRequest_ResponseType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ReadRequest_ResponseType_descriptor(), enum_t_value);
}
inline bool ReadRequest_ResponseType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ReadRequest_ResponseType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ReadRequest_ResponseType>(
    ReadRequest_ResponseType_descriptor(), name, value);
}
// ===================================================================

class WriteRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.WriteRequest) */ {
 public:
  inline WriteRequest() : WriteRequest(nullptr) {}
  ~WriteRequest() override;
  explicit PROTOBUF_CONSTEXPR WriteRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WriteRequest(const WriteRequest& from);
  WriteRequest(WriteRequest&& from) noexcept
    : WriteRequest() {
    *this = ::std::move(from);
  }

  inline WriteRequest& operator=(const WriteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline WriteRequest& operator=(WriteRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WriteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const WriteRequest* internal_default_instance() {
    return reinterpret_cast<const WriteRequest*>(
               &_WriteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(WriteRequest& a, WriteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(WriteRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WriteRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WriteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WriteRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WriteRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const WriteRequest& from) {
    WriteRequest::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WriteRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.WriteRequest";
  }
  protected:
  explicit WriteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTimeseriesFieldNumber = 1,
    kMetadataFieldNumber = 3,
  };
  // repeated .prometheus.TimeSeries timeseries = 1;
  int timeseries_size() const;
  private:
  int _internal_timeseries_size() const;
  public:
  void clear_timeseries();
  ::prometheus::TimeSeries* mutable_timeseries(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >*
      mutable_timeseries();
  private:
  const ::prometheus::TimeSeries& _internal_timeseries(int index) const;
  ::prometheus::TimeSeries* _internal_add_timeseries();
  public:
  const ::prometheus::TimeSeries& timeseries(int index) const;
  ::prometheus::TimeSeries* add_timeseries();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >&
      timeseries() const;

  // repeated .prometheus.MetricMetadata metadata = 3;
  int metadata_size() const;
  private:
  int _internal_metadata_size() const;
  public:
  void clear_metadata();
  ::prometheus::MetricMetadata* mutable_metadata(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::MetricMetadata >*
      mutable_metadata();
  private:
  const ::prometheus::MetricMetadata& _internal_metadata(int index) const;
  ::prometheus::MetricMetadata* _internal_add_metadata();
  public:
  const ::prometheus::MetricMetadata& metadata(int index) const;
  ::prometheus::MetricMetadata* add_metadata();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::MetricMetadata >&
      metadata() const;

  // @@protoc_insertion_point(class_scope:prometheus.WriteRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries > timeseries_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::MetricMetadata > metadata_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// -------------------------------------------------------------------

class ReadRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.ReadRequest) */ {
 public:
  inline ReadRequest() : ReadRequest(nullptr) {}
  ~ReadRequest() override;
  explicit PROTOBUF_CONSTEXPR ReadRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ReadRequest(const ReadRequest& from);
  ReadRequest(ReadRequest&& from) noexcept
    : ReadRequest() {
    *this = ::std::move(from);
  }

  inline ReadRequest& operator=(const ReadRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReadRequest& operator=(ReadRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReadRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ReadRequest* internal_default_instance() {
    return reinterpret_cast<const ReadRequest*>(
               &_ReadRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(ReadRequest& a, ReadRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ReadRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReadRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  ReadRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ReadRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ReadRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ReadRequest& from) {
    ReadRequest::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReadRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.ReadRequest";
  }
  protected:
  explicit ReadRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef ReadRequest_ResponseType ResponseType;
  static constexpr ResponseType SAMPLES =
    ReadRequest_ResponseType_SAMPLES;
  static constexpr ResponseType STREAMED_XOR_CHUNKS =
    ReadRequest_ResponseType_STREAMED_XOR_CHUNKS;
  static inline bool ResponseType_IsValid(int value) {
    return ReadRequest_ResponseType_IsValid(value);
  }
  static constexpr ResponseType ResponseType_MIN =
    ReadRequest_ResponseType_ResponseType_MIN;
  static constexpr ResponseType ResponseType_MAX =
    ReadRequest_ResponseType_ResponseType_MAX;
  static constexpr int ResponseType_ARRAYSIZE =
    ReadRequest_ResponseType_ResponseType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ResponseType_descriptor() {
    return ReadRequest_ResponseType_descriptor();
  }
  template<typename T>
  static inline const std::string& ResponseType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ResponseType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ResponseType_Name.");
    return ReadRequest_ResponseType_Name(enum_t_value);
  }
  static inline bool ResponseType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ResponseType* value) {
    return ReadRequest_ResponseType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kQueriesFieldNumber = 1,
    kAcceptedResponseTypesFieldNumber = 2,
  };
  // repeated .prometheus.Query queries = 1;
  int queries_size() const;
  private:
  int _internal_queries_size() const;
  public:
  void clear_queries();
  ::prometheus::Query* mutable_queries(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::Query >*
      mutable_queries();
  private:
  const ::prometheus::Query& _internal_queries(int index) const;
  ::prometheus::Query* _internal_add_queries();
  public:
  const ::prometheus::Query& queries(int index) const;
  ::prometheus::Query* add_queries();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::Query >&
      queries() const;

  // repeated .prometheus.ReadRequest.ResponseType accepted_response_types = 2;
  int accepted_response_types_size() const;
  private:
  int _internal_accepted_response_types_size() const;
  public:
  void clear_accepted_response_types();
  private:
  ::prometheus::ReadRequest_ResponseType _internal_accepted_response_types(int index) const;
  void _internal_add_accepted_response_types(::prometheus::ReadRequest_ResponseType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_accepted_response_types();
  public:
  ::prometheus::ReadRequest_ResponseType accepted_response_types(int index) const;
  void set_accepted_response_types(int index, ::prometheus::ReadRequest_ResponseType value);
  void add_accepted_response_types(::prometheus::ReadRequest_ResponseType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& accepted_response_types() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_accepted_response_types();

  // @@protoc_insertion_point(class_scope:prometheus.ReadRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::Query > queries_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> accepted_response_types_;
    mutable std::atomic<int> _accepted_response_types_cached_byte_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// -------------------------------------------------------------------

class ReadResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.ReadResponse) */ {
 public:
  inline ReadResponse() : ReadResponse(nullptr) {}
  ~ReadResponse() override;
  explicit PROTOBUF_CONSTEXPR ReadResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ReadResponse(const ReadResponse& from);
  ReadResponse(ReadResponse&& from) noexcept
    : ReadResponse() {
    *this = ::std::move(from);
  }

  inline ReadResponse& operator=(const ReadResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReadResponse& operator=(ReadResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReadResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ReadResponse* internal_default_instance() {
    return reinterpret_cast<const ReadResponse*>(
               &_ReadResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(ReadResponse& a, ReadResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ReadResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReadResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  ReadResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ReadResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ReadResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ReadResponse& from) {
    ReadResponse::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReadResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.ReadResponse";
  }
  protected:
  explicit ReadResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kResultsFieldNumber = 1,
  };
  // repeated .prometheus.QueryResult results = 1;
  int results_size() const;
  private:
  int _internal_results_size() const;
  public:
  void clear_results();
  ::prometheus::QueryResult* mutable_results(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::QueryResult >*
      mutable_results();
  private:
  const ::prometheus::QueryResult& _internal_results(int index) const;
  ::prometheus::QueryResult* _internal_add_results();
  public:
  const ::prometheus::QueryResult& results(int index) const;
  ::prometheus::QueryResult* add_results();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::QueryResult >&
      results() const;

  // @@protoc_insertion_point(class_scope:prometheus.ReadResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::QueryResult > results_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// -------------------------------------------------------------------

class Query final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.Query) */ {
 public:
  inline Query() : Query(nullptr) {}
  ~Query() override;
  explicit PROTOBUF_CONSTEXPR Query(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Query(const Query& from);
  Query(Query&& from) noexcept
    : Query() {
    *this = ::std::move(from);
  }

  inline Query& operator=(const Query& from) {
    CopyFrom(from);
    return *this;
  }
  inline Query& operator=(Query&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Query& default_instance() {
    return *internal_default_instance();
  }
  static inline const Query* internal_default_instance() {
    return reinterpret_cast<const Query*>(
               &_Query_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(Query& a, Query& b) {
    a.Swap(&b);
  }
  inline void Swap(Query* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Query* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Query* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Query>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Query& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Query& from) {
    Query::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Query* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.Query";
  }
  protected:
  explicit Query(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMatchersFieldNumber = 3,
    kHintsFieldNumber = 4,
    kStartTimestampMsFieldNumber = 1,
    kEndTimestampMsFieldNumber = 2,
  };
  // repeated .prometheus.LabelMatcher matchers = 3;
  int matchers_size() const;
  private:
  int _internal_matchers_size() const;
  public:
  void clear_matchers();
  ::prometheus::LabelMatcher* mutable_matchers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::LabelMatcher >*
      mutable_matchers();
  private:
  const ::prometheus::LabelMatcher& _internal_matchers(int index) const;
  ::prometheus::LabelMatcher* _internal_add_matchers();
  public:
  const ::prometheus::LabelMatcher& matchers(int index) const;
  ::prometheus::LabelMatcher* add_matchers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::LabelMatcher >&
      matchers() const;

  // .prometheus.ReadHints hints = 4;
  bool has_hints() const;
  private:
  bool _internal_has_hints() const;
  public:
  void clear_hints();
  const ::prometheus::ReadHints& hints() const;
  PROTOBUF_NODISCARD ::prometheus::ReadHints* release_hints();
  ::prometheus::ReadHints* mutable_hints();
  void set_allocated_hints(::prometheus::ReadHints* hints);
  private:
  const ::prometheus::ReadHints& _internal_hints() const;
  ::prometheus::ReadHints* _internal_mutable_hints();
  public:
  void unsafe_arena_set_allocated_hints(
      ::prometheus::ReadHints* hints);
  ::prometheus::ReadHints* unsafe_arena_release_hints();

  // int64 start_timestamp_ms = 1;
  void clear_start_timestamp_ms();
  int64_t start_timestamp_ms() const;
  void set_start_timestamp_ms(int64_t value);
  private:
  int64_t _internal_start_timestamp_ms() const;
  void _internal_set_start_timestamp_ms(int64_t value);
  public:

  // int64 end_timestamp_ms = 2;
  void clear_end_timestamp_ms();
  int64_t end_timestamp_ms() const;
  void set_end_timestamp_ms(int64_t value);
  private:
  int64_t _internal_end_timestamp_ms() const;
  void _internal_set_end_timestamp_ms(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:prometheus.Query)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::LabelMatcher > matchers_;
    ::prometheus::ReadHints* hints_;
    int64_t start_timestamp_ms_;
    int64_t end_timestamp_ms_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// -------------------------------------------------------------------

class QueryResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.QueryResult) */ {
 public:
  inline QueryResult() : QueryResult(nullptr) {}
  ~QueryResult() override;
  explicit PROTOBUF_CONSTEXPR QueryResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  QueryResult(const QueryResult& from);
  QueryResult(QueryResult&& from) noexcept
    : QueryResult() {
    *this = ::std::move(from);
  }

  inline QueryResult& operator=(const QueryResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline QueryResult& operator=(QueryResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const QueryResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const QueryResult* internal_default_instance() {
    return reinterpret_cast<const QueryResult*>(
               &_QueryResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(QueryResult& a, QueryResult& b) {
    a.Swap(&b);
  }
  inline void Swap(QueryResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QueryResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  QueryResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<QueryResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const QueryResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const QueryResult& from) {
    QueryResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(QueryResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.QueryResult";
  }
  protected:
  explicit QueryResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTimeseriesFieldNumber = 1,
  };
  // repeated .prometheus.TimeSeries timeseries = 1;
  int timeseries_size() const;
  private:
  int _internal_timeseries_size() const;
  public:
  void clear_timeseries();
  ::prometheus::TimeSeries* mutable_timeseries(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >*
      mutable_timeseries();
  private:
  const ::prometheus::TimeSeries& _internal_timeseries(int index) const;
  ::prometheus::TimeSeries* _internal_add_timeseries();
  public:
  const ::prometheus::TimeSeries& timeseries(int index) const;
  ::prometheus::TimeSeries* add_timeseries();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >&
      timeseries() const;

  // @@protoc_insertion_point(class_scope:prometheus.QueryResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries > timeseries_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// -------------------------------------------------------------------

class ChunkedReadResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:prometheus.ChunkedReadResponse) */ {
 public:
  inline ChunkedReadResponse() : ChunkedReadResponse(nullptr) {}
  ~ChunkedReadResponse() override;
  explicit PROTOBUF_CONSTEXPR ChunkedReadResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ChunkedReadResponse(const ChunkedReadResponse& from);
  ChunkedReadResponse(ChunkedReadResponse&& from) noexcept
    : ChunkedReadResponse() {
    *this = ::std::move(from);
  }

  inline ChunkedReadResponse& operator=(const ChunkedReadResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChunkedReadResponse& operator=(ChunkedReadResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChunkedReadResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChunkedReadResponse* internal_default_instance() {
    return reinterpret_cast<const ChunkedReadResponse*>(
               &_ChunkedReadResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(ChunkedReadResponse& a, ChunkedReadResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChunkedReadResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChunkedReadResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  ChunkedReadResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ChunkedReadResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ChunkedReadResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ChunkedReadResponse& from) {
    ChunkedReadResponse::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChunkedReadResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "prometheus.ChunkedReadResponse";
  }
  protected:
  explicit ChunkedReadResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kChunkedSeriesFieldNumber = 1,
    kQueryIndexFieldNumber = 2,
  };
  // repeated .prometheus.ChunkedSeries chunked_series = 1;
  int chunked_series_size() const;
  private:
  int _internal_chunked_series_size() const;
  public:
  void clear_chunked_series();
  ::prometheus::ChunkedSeries* mutable_chunked_series(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::ChunkedSeries >*
      mutable_chunked_series();
  private:
  const ::prometheus::ChunkedSeries& _internal_chunked_series(int index) const;
  ::prometheus::ChunkedSeries* _internal_add_chunked_series();
  public:
  const ::prometheus::ChunkedSeries& chunked_series(int index) const;
  ::prometheus::ChunkedSeries* add_chunked_series();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::ChunkedSeries >&
      chunked_series() const;

  // int64 query_index = 2;
  void clear_query_index();
  int64_t query_index() const;
  void set_query_index(int64_t value);
  private:
  int64_t _internal_query_index() const;
  void _internal_set_query_index(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:prometheus.ChunkedReadResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::ChunkedSeries > chunked_series_;
    int64_t query_index_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_prometheus_2fremote_2fremote_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// WriteRequest

// repeated .prometheus.TimeSeries timeseries = 1;
inline int WriteRequest::_internal_timeseries_size() const {
  return _impl_.timeseries_.size();
}
inline int WriteRequest::timeseries_size() const {
  return _internal_timeseries_size();
}
inline ::prometheus::TimeSeries* WriteRequest::mutable_timeseries(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.WriteRequest.timeseries)
  return _impl_.timeseries_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >*
WriteRequest::mutable_timeseries() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.WriteRequest.timeseries)
  return &_impl_.timeseries_;
}
inline const ::prometheus::TimeSeries& WriteRequest::_internal_timeseries(int index) const {
  return _impl_.timeseries_.Get(index);
}
inline const ::prometheus::TimeSeries& WriteRequest::timeseries(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.WriteRequest.timeseries)
  return _internal_timeseries(index);
}
inline ::prometheus::TimeSeries* WriteRequest::_internal_add_timeseries() {
  return _impl_.timeseries_.Add();
}
inline ::prometheus::TimeSeries* WriteRequest::add_timeseries() {
  ::prometheus::TimeSeries* _add = _internal_add_timeseries();
  // @@protoc_insertion_point(field_add:prometheus.WriteRequest.timeseries)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >&
WriteRequest::timeseries() const {
  // @@protoc_insertion_point(field_list:prometheus.WriteRequest.timeseries)
  return _impl_.timeseries_;
}

// repeated .prometheus.MetricMetadata metadata = 3;
inline int WriteRequest::_internal_metadata_size() const {
  return _impl_.metadata_.size();
}
inline int WriteRequest::metadata_size() const {
  return _internal_metadata_size();
}
inline ::prometheus::MetricMetadata* WriteRequest::mutable_metadata(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.WriteRequest.metadata)
  return _impl_.metadata_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::MetricMetadata >*
WriteRequest::mutable_metadata() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.WriteRequest.metadata)
  return &_impl_.metadata_;
}
inline const ::prometheus::MetricMetadata& WriteRequest::_internal_metadata(int index) const {
  return _impl_.metadata_.Get(index);
}
inline const ::prometheus::MetricMetadata& WriteRequest::metadata(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.WriteRequest.metadata)
  return _internal_metadata(index);
}
inline ::prometheus::MetricMetadata* WriteRequest::_internal_add_metadata() {
  return _impl_.metadata_.Add();
}
inline ::prometheus::MetricMetadata* WriteRequest::add_metadata() {
  ::prometheus::MetricMetadata* _add = _internal_add_metadata();
  // @@protoc_insertion_point(field_add:prometheus.WriteRequest.metadata)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::MetricMetadata >&
WriteRequest::metadata() const {
  // @@protoc_insertion_point(field_list:prometheus.WriteRequest.metadata)
  return _impl_.metadata_;
}

// -------------------------------------------------------------------

// ReadRequest

// repeated .prometheus.Query queries = 1;
inline int ReadRequest::_internal_queries_size() const {
  return _impl_.queries_.size();
}
inline int ReadRequest::queries_size() const {
  return _internal_queries_size();
}
inline void ReadRequest::clear_queries() {
  _impl_.queries_.Clear();
}
inline ::prometheus::Query* ReadRequest::mutable_queries(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.ReadRequest.queries)
  return _impl_.queries_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::Query >*
ReadRequest::mutable_queries() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.ReadRequest.queries)
  return &_impl_.queries_;
}
inline const ::prometheus::Query& ReadRequest::_internal_queries(int index) const {
  return _impl_.queries_.Get(index);
}
inline const ::prometheus::Query& ReadRequest::queries(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.ReadRequest.queries)
  return _internal_queries(index);
}
inline ::prometheus::Query* ReadRequest::_internal_add_queries() {
  return _impl_.queries_.Add();
}
inline ::prometheus::Query* ReadRequest::add_queries() {
  ::prometheus::Query* _add = _internal_add_queries();
  // @@protoc_insertion_point(field_add:prometheus.ReadRequest.queries)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::Query >&
ReadRequest::queries() const {
  // @@protoc_insertion_point(field_list:prometheus.ReadRequest.queries)
  return _impl_.queries_;
}

// repeated .prometheus.ReadRequest.ResponseType accepted_response_types = 2;
inline int ReadRequest::_internal_accepted_response_types_size() const {
  return _impl_.accepted_response_types_.size();
}
inline int ReadRequest::accepted_response_types_size() const {
  return _internal_accepted_response_types_size();
}
inline void ReadRequest::clear_accepted_response_types() {
  _impl_.accepted_response_types_.Clear();
}
inline ::prometheus::ReadRequest_ResponseType ReadRequest::_internal_accepted_response_types(int index) const {
  return static_cast< ::prometheus::ReadRequest_ResponseType >(_impl_.accepted_response_types_.Get(index));
}
inline ::prometheus::ReadRequest_ResponseType ReadRequest::accepted_response_types(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.ReadRequest.accepted_response_types)
  return _internal_accepted_response_types(index);
}
inline void ReadRequest::set_accepted_response_types(int index, ::prometheus::ReadRequest_ResponseType value) {
  _impl_.accepted_response_types_.Set(index, value);
  // @@protoc_insertion_point(field_set:prometheus.ReadRequest.accepted_response_types)
}
inline void ReadRequest::_internal_add_accepted_response_types(::prometheus::ReadRequest_ResponseType value) {
  _impl_.accepted_response_types_.Add(value);
}
inline void ReadRequest::add_accepted_response_types(::prometheus::ReadRequest_ResponseType value) {
  _internal_add_accepted_response_types(value);
  // @@protoc_insertion_point(field_add:prometheus.ReadRequest.accepted_response_types)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
ReadRequest::accepted_response_types() const {
  // @@protoc_insertion_point(field_list:prometheus.ReadRequest.accepted_response_types)
  return _impl_.accepted_response_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ReadRequest::_internal_mutable_accepted_response_types() {
  return &_impl_.accepted_response_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ReadRequest::mutable_accepted_response_types() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.ReadRequest.accepted_response_types)
  return _internal_mutable_accepted_response_types();
}

// -------------------------------------------------------------------

// ReadResponse

// repeated .prometheus.QueryResult results = 1;
inline int ReadResponse::_internal_results_size() const {
  return _impl_.results_.size();
}
inline int ReadResponse::results_size() const {
  return _internal_results_size();
}
inline void ReadResponse::clear_results() {
  _impl_.results_.Clear();
}
inline ::prometheus::QueryResult* ReadResponse::mutable_results(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.ReadResponse.results)
  return _impl_.results_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::QueryResult >*
ReadResponse::mutable_results() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.ReadResponse.results)
  return &_impl_.results_;
}
inline const ::prometheus::QueryResult& ReadResponse::_internal_results(int index) const {
  return _impl_.results_.Get(index);
}
inline const ::prometheus::QueryResult& ReadResponse::results(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.ReadResponse.results)
  return _internal_results(index);
}
inline ::prometheus::QueryResult* ReadResponse::_internal_add_results() {
  return _impl_.results_.Add();
}
inline ::prometheus::QueryResult* ReadResponse::add_results() {
  ::prometheus::QueryResult* _add = _internal_add_results();
  // @@protoc_insertion_point(field_add:prometheus.ReadResponse.results)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::QueryResult >&
ReadResponse::results() const {
  // @@protoc_insertion_point(field_list:prometheus.ReadResponse.results)
  return _impl_.results_;
}

// -------------------------------------------------------------------

// Query

// int64 start_timestamp_ms = 1;
inline void Query::clear_start_timestamp_ms() {
  _impl_.start_timestamp_ms_ = int64_t{0};
}
inline int64_t Query::_internal_start_timestamp_ms() const {
  return _impl_.start_timestamp_ms_;
}
inline int64_t Query::start_timestamp_ms() const {
  // @@protoc_insertion_point(field_get:prometheus.Query.start_timestamp_ms)
  return _internal_start_timestamp_ms();
}
inline void Query::_internal_set_start_timestamp_ms(int64_t value) {
  
  _impl_.start_timestamp_ms_ = value;
}
inline void Query::set_start_timestamp_ms(int64_t value) {
  _internal_set_start_timestamp_ms(value);
  // @@protoc_insertion_point(field_set:prometheus.Query.start_timestamp_ms)
}

// int64 end_timestamp_ms = 2;
inline void Query::clear_end_timestamp_ms() {
  _impl_.end_timestamp_ms_ = int64_t{0};
}
inline int64_t Query::_internal_end_timestamp_ms() const {
  return _impl_.end_timestamp_ms_;
}
inline int64_t Query::end_timestamp_ms() const {
  // @@protoc_insertion_point(field_get:prometheus.Query.end_timestamp_ms)
  return _internal_end_timestamp_ms();
}
inline void Query::_internal_set_end_timestamp_ms(int64_t value) {
  
  _impl_.end_timestamp_ms_ = value;
}
inline void Query::set_end_timestamp_ms(int64_t value) {
  _internal_set_end_timestamp_ms(value);
  // @@protoc_insertion_point(field_set:prometheus.Query.end_timestamp_ms)
}

// repeated .prometheus.LabelMatcher matchers = 3;
inline int Query::_internal_matchers_size() const {
  return _impl_.matchers_.size();
}
inline int Query::matchers_size() const {
  return _internal_matchers_size();
}
inline ::prometheus::LabelMatcher* Query::mutable_matchers(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.Query.matchers)
  return _impl_.matchers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::LabelMatcher >*
Query::mutable_matchers() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.Query.matchers)
  return &_impl_.matchers_;
}
inline const ::prometheus::LabelMatcher& Query::_internal_matchers(int index) const {
  return _impl_.matchers_.Get(index);
}
inline const ::prometheus::LabelMatcher& Query::matchers(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.Query.matchers)
  return _internal_matchers(index);
}
inline ::prometheus::LabelMatcher* Query::_internal_add_matchers() {
  return _impl_.matchers_.Add();
}
inline ::prometheus::LabelMatcher* Query::add_matchers() {
  ::prometheus::LabelMatcher* _add = _internal_add_matchers();
  // @@protoc_insertion_point(field_add:prometheus.Query.matchers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::LabelMatcher >&
Query::matchers() const {
  // @@protoc_insertion_point(field_list:prometheus.Query.matchers)
  return _impl_.matchers_;
}

// .prometheus.ReadHints hints = 4;
inline bool Query::_internal_has_hints() const {
  return this != internal_default_instance() && _impl_.hints_ != nullptr;
}
inline bool Query::has_hints() const {
  return _internal_has_hints();
}
inline const ::prometheus::ReadHints& Query::_internal_hints() const {
  const ::prometheus::ReadHints* p = _impl_.hints_;
  return p != nullptr ? *p : reinterpret_cast<const ::prometheus::ReadHints&>(
      ::prometheus::_ReadHints_default_instance_);
}
inline const ::prometheus::ReadHints& Query::hints() const {
  // @@protoc_insertion_point(field_get:prometheus.Query.hints)
  return _internal_hints();
}
inline void Query::unsafe_arena_set_allocated_hints(
    ::prometheus::ReadHints* hints) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.hints_);
  }
  _impl_.hints_ = hints;
  if (hints) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:prometheus.Query.hints)
}
inline ::prometheus::ReadHints* Query::release_hints() {
  
  ::prometheus::ReadHints* temp = _impl_.hints_;
  _impl_.hints_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::prometheus::ReadHints* Query::unsafe_arena_release_hints() {
  // @@protoc_insertion_point(field_release:prometheus.Query.hints)
  
  ::prometheus::ReadHints* temp = _impl_.hints_;
  _impl_.hints_ = nullptr;
  return temp;
}
inline ::prometheus::ReadHints* Query::_internal_mutable_hints() {
  
  if (_impl_.hints_ == nullptr) {
    auto* p = CreateMaybeMessage<::prometheus::ReadHints>(GetArenaForAllocation());
    _impl_.hints_ = p;
  }
  return _impl_.hints_;
}
inline ::prometheus::ReadHints* Query::mutable_hints() {
  ::prometheus::ReadHints* _msg = _internal_mutable_hints();
  // @@protoc_insertion_point(field_mutable:prometheus.Query.hints)
  return _msg;
}
inline void Query::set_allocated_hints(::prometheus::ReadHints* hints) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.hints_);
  }
  if (hints) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(hints));
    if (message_arena != submessage_arena) {
      hints = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, hints, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.hints_ = hints;
  // @@protoc_insertion_point(field_set_allocated:prometheus.Query.hints)
}

// -------------------------------------------------------------------

// QueryResult

// repeated .prometheus.TimeSeries timeseries = 1;
inline int QueryResult::_internal_timeseries_size() const {
  return _impl_.timeseries_.size();
}
inline int QueryResult::timeseries_size() const {
  return _internal_timeseries_size();
}
inline ::prometheus::TimeSeries* QueryResult::mutable_timeseries(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.QueryResult.timeseries)
  return _impl_.timeseries_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >*
QueryResult::mutable_timeseries() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.QueryResult.timeseries)
  return &_impl_.timeseries_;
}
inline const ::prometheus::TimeSeries& QueryResult::_internal_timeseries(int index) const {
  return _impl_.timeseries_.Get(index);
}
inline const ::prometheus::TimeSeries& QueryResult::timeseries(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.QueryResult.timeseries)
  return _internal_timeseries(index);
}
inline ::prometheus::TimeSeries* QueryResult::_internal_add_timeseries() {
  return _impl_.timeseries_.Add();
}
inline ::prometheus::TimeSeries* QueryResult::add_timeseries() {
  ::prometheus::TimeSeries* _add = _internal_add_timeseries();
  // @@protoc_insertion_point(field_add:prometheus.QueryResult.timeseries)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::TimeSeries >&
QueryResult::timeseries() const {
  // @@protoc_insertion_point(field_list:prometheus.QueryResult.timeseries)
  return _impl_.timeseries_;
}

// -------------------------------------------------------------------

// ChunkedReadResponse

// repeated .prometheus.ChunkedSeries chunked_series = 1;
inline int ChunkedReadResponse::_internal_chunked_series_size() const {
  return _impl_.chunked_series_.size();
}
inline int ChunkedReadResponse::chunked_series_size() const {
  return _internal_chunked_series_size();
}
inline ::prometheus::ChunkedSeries* ChunkedReadResponse::mutable_chunked_series(int index) {
  // @@protoc_insertion_point(field_mutable:prometheus.ChunkedReadResponse.chunked_series)
  return _impl_.chunked_series_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::ChunkedSeries >*
ChunkedReadResponse::mutable_chunked_series() {
  // @@protoc_insertion_point(field_mutable_list:prometheus.ChunkedReadResponse.chunked_series)
  return &_impl_.chunked_series_;
}
inline const ::prometheus::ChunkedSeries& ChunkedReadResponse::_internal_chunked_series(int index) const {
  return _impl_.chunked_series_.Get(index);
}
inline const ::prometheus::ChunkedSeries& ChunkedReadResponse::chunked_series(int index) const {
  // @@protoc_insertion_point(field_get:prometheus.ChunkedReadResponse.chunked_series)
  return _internal_chunked_series(index);
}
inline ::prometheus::ChunkedSeries* ChunkedReadResponse::_internal_add_chunked_series() {
  return _impl_.chunked_series_.Add();
}
inline ::prometheus::ChunkedSeries* ChunkedReadResponse::add_chunked_series() {
  ::prometheus::ChunkedSeries* _add = _internal_add_chunked_series();
  // @@protoc_insertion_point(field_add:prometheus.ChunkedReadResponse.chunked_series)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::prometheus::ChunkedSeries >&
ChunkedReadResponse::chunked_series() const {
  // @@protoc_insertion_point(field_list:prometheus.ChunkedReadResponse.chunked_series)
  return _impl_.chunked_series_;
}

// int64 query_index = 2;
inline void ChunkedReadResponse::clear_query_index() {
  _impl_.query_index_ = int64_t{0};
}
inline int64_t ChunkedReadResponse::_internal_query_index() const {
  return _impl_.query_index_;
}
inline int64_t ChunkedReadResponse::query_index() const {
  // @@protoc_insertion_point(field_get:prometheus.ChunkedReadResponse.query_index)
  return _internal_query_index();
}
inline void ChunkedReadResponse::_internal_set_query_index(int64_t value) {
  
  _impl_.query_index_ = value;
}
inline void ChunkedReadResponse::set_query_index(int64_t value) {
  _internal_set_query_index(value);
  // @@protoc_insertion_point(field_set:prometheus.ChunkedReadResponse.query_index)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace prometheus

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::prometheus::ReadRequest_ResponseType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::prometheus::ReadRequest_ResponseType>() {
  return ::prometheus::ReadRequest_ResponseType_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_prometheus_2fremote_2fremote_2eproto
