// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: envoy/api/v2/discovery.proto

#ifndef PROTOBUF_INCLUDED_envoy_2fapi_2fv2_2fdiscovery_2eproto
#define PROTOBUF_INCLUDED_envoy_2fapi_2fv2_2fdiscovery_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3007000
#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 3007001 < 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_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.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/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/unknown_field_set.h>
#include "envoy/api/v2/core/base.pb.h"
#include <google/protobuf/any.pb.h>
#include "google/rpc/status.pb.h"
#include "gogoproto/gogo.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_envoy_2fapi_2fv2_2fdiscovery_2eproto

// Internal implementation detail -- do not use these members.
struct TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto {
  static const ::google::protobuf::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::google::protobuf::internal::ParseTable schema[9]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors_envoy_2fapi_2fv2_2fdiscovery_2eproto();
namespace envoy {
namespace api {
namespace v2 {
class CRSummary;
class CRSummaryDefaultTypeInternal;
extern CRSummaryDefaultTypeInternal _CRSummary_default_instance_;
class CheckMessage;
class CheckMessageDefaultTypeInternal;
extern CheckMessageDefaultTypeInternal _CheckMessage_default_instance_;
class DiscoveryRequest;
class DiscoveryRequestDefaultTypeInternal;
extern DiscoveryRequestDefaultTypeInternal _DiscoveryRequest_default_instance_;
class DiscoveryResponse;
class DiscoveryResponseDefaultTypeInternal;
extern DiscoveryResponseDefaultTypeInternal _DiscoveryResponse_default_instance_;
class DiscoveryResponseExpand;
class DiscoveryResponseExpandDefaultTypeInternal;
extern DiscoveryResponseExpandDefaultTypeInternal _DiscoveryResponseExpand_default_instance_;
class IncrementalDiscoveryRequest;
class IncrementalDiscoveryRequestDefaultTypeInternal;
extern IncrementalDiscoveryRequestDefaultTypeInternal _IncrementalDiscoveryRequest_default_instance_;
class IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse;
class IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUseDefaultTypeInternal;
extern IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUseDefaultTypeInternal _IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse_default_instance_;
class IncrementalDiscoveryResponse;
class IncrementalDiscoveryResponseDefaultTypeInternal;
extern IncrementalDiscoveryResponseDefaultTypeInternal _IncrementalDiscoveryResponse_default_instance_;
class Resource;
class ResourceDefaultTypeInternal;
extern ResourceDefaultTypeInternal _Resource_default_instance_;
}  // namespace v2
}  // namespace api
}  // namespace envoy
namespace google {
namespace protobuf {
template<> ::envoy::api::v2::CRSummary* Arena::CreateMaybeMessage<::envoy::api::v2::CRSummary>(Arena*);
template<> ::envoy::api::v2::CheckMessage* Arena::CreateMaybeMessage<::envoy::api::v2::CheckMessage>(Arena*);
template<> ::envoy::api::v2::DiscoveryRequest* Arena::CreateMaybeMessage<::envoy::api::v2::DiscoveryRequest>(Arena*);
template<> ::envoy::api::v2::DiscoveryResponse* Arena::CreateMaybeMessage<::envoy::api::v2::DiscoveryResponse>(Arena*);
template<> ::envoy::api::v2::DiscoveryResponseExpand* Arena::CreateMaybeMessage<::envoy::api::v2::DiscoveryResponseExpand>(Arena*);
template<> ::envoy::api::v2::IncrementalDiscoveryRequest* Arena::CreateMaybeMessage<::envoy::api::v2::IncrementalDiscoveryRequest>(Arena*);
template<> ::envoy::api::v2::IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse* Arena::CreateMaybeMessage<::envoy::api::v2::IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse>(Arena*);
template<> ::envoy::api::v2::IncrementalDiscoveryResponse* Arena::CreateMaybeMessage<::envoy::api::v2::IncrementalDiscoveryResponse>(Arena*);
template<> ::envoy::api::v2::Resource* Arena::CreateMaybeMessage<::envoy::api::v2::Resource>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace envoy {
namespace api {
namespace v2 {

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

class DiscoveryRequest :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.DiscoveryRequest) */ {
 public:
  DiscoveryRequest();
  virtual ~DiscoveryRequest();

  DiscoveryRequest(const DiscoveryRequest& from);

  inline DiscoveryRequest& operator=(const DiscoveryRequest& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  DiscoveryRequest(DiscoveryRequest&& from) noexcept
    : DiscoveryRequest() {
    *this = ::std::move(from);
  }

  inline DiscoveryRequest& operator=(DiscoveryRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const DiscoveryRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DiscoveryRequest* internal_default_instance() {
    return reinterpret_cast<const DiscoveryRequest*>(
               &_DiscoveryRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(DiscoveryRequest* other);
  friend void swap(DiscoveryRequest& a, DiscoveryRequest& b) {
    a.Swap(&b);
  }

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

  inline DiscoveryRequest* New() const final {
    return CreateMaybeMessage<DiscoveryRequest>(nullptr);
  }

  DiscoveryRequest* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DiscoveryRequest>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DiscoveryRequest& from);
  void MergeFrom(const DiscoveryRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DiscoveryRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // repeated string resource_names = 3;
  int resource_names_size() const;
  void clear_resource_names();
  static const int kResourceNamesFieldNumber = 3;
  const ::std::string& resource_names(int index) const;
  ::std::string* mutable_resource_names(int index);
  void set_resource_names(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_resource_names(int index, ::std::string&& value);
  #endif
  void set_resource_names(int index, const char* value);
  void set_resource_names(int index, const char* value, size_t size);
  ::std::string* add_resource_names();
  void add_resource_names(const ::std::string& value);
  #if LANG_CXX11
  void add_resource_names(::std::string&& value);
  #endif
  void add_resource_names(const char* value);
  void add_resource_names(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField<::std::string>& resource_names() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* mutable_resource_names();

  // string version_info = 1;
  void clear_version_info();
  static const int kVersionInfoFieldNumber = 1;
  const ::std::string& version_info() const;
  void set_version_info(const ::std::string& value);
  #if LANG_CXX11
  void set_version_info(::std::string&& value);
  #endif
  void set_version_info(const char* value);
  void set_version_info(const char* value, size_t size);
  ::std::string* mutable_version_info();
  ::std::string* release_version_info();
  void set_allocated_version_info(::std::string* version_info);

  // string type_url = 4;
  void clear_type_url();
  static const int kTypeUrlFieldNumber = 4;
  const ::std::string& type_url() const;
  void set_type_url(const ::std::string& value);
  #if LANG_CXX11
  void set_type_url(::std::string&& value);
  #endif
  void set_type_url(const char* value);
  void set_type_url(const char* value, size_t size);
  ::std::string* mutable_type_url();
  ::std::string* release_type_url();
  void set_allocated_type_url(::std::string* type_url);

  // string response_nonce = 5;
  void clear_response_nonce();
  static const int kResponseNonceFieldNumber = 5;
  const ::std::string& response_nonce() const;
  void set_response_nonce(const ::std::string& value);
  #if LANG_CXX11
  void set_response_nonce(::std::string&& value);
  #endif
  void set_response_nonce(const char* value);
  void set_response_nonce(const char* value, size_t size);
  ::std::string* mutable_response_nonce();
  ::std::string* release_response_nonce();
  void set_allocated_response_nonce(::std::string* response_nonce);

  // .envoy.api.v2.core.Node node = 2;
  bool has_node() const;
  void clear_node();
  static const int kNodeFieldNumber = 2;
  const ::envoy::api::v2::core::Node& node() const;
  ::envoy::api::v2::core::Node* release_node();
  ::envoy::api::v2::core::Node* mutable_node();
  void set_allocated_node(::envoy::api::v2::core::Node* node);

  // .google.rpc.Status error_detail = 6;
  bool has_error_detail() const;
  void clear_error_detail();
  static const int kErrorDetailFieldNumber = 6;
  const ::google::rpc::Status& error_detail() const;
  ::google::rpc::Status* release_error_detail();
  ::google::rpc::Status* mutable_error_detail();
  void set_allocated_error_detail(::google::rpc::Status* error_detail);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.DiscoveryRequest)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField<::std::string> resource_names_;
  ::google::protobuf::internal::ArenaStringPtr version_info_;
  ::google::protobuf::internal::ArenaStringPtr type_url_;
  ::google::protobuf::internal::ArenaStringPtr response_nonce_;
  ::envoy::api::v2::core::Node* node_;
  ::google::rpc::Status* error_detail_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class DiscoveryResponse :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.DiscoveryResponse) */ {
 public:
  DiscoveryResponse();
  virtual ~DiscoveryResponse();

  DiscoveryResponse(const DiscoveryResponse& from);

  inline DiscoveryResponse& operator=(const DiscoveryResponse& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  DiscoveryResponse(DiscoveryResponse&& from) noexcept
    : DiscoveryResponse() {
    *this = ::std::move(from);
  }

  inline DiscoveryResponse& operator=(DiscoveryResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const DiscoveryResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DiscoveryResponse* internal_default_instance() {
    return reinterpret_cast<const DiscoveryResponse*>(
               &_DiscoveryResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(DiscoveryResponse* other);
  friend void swap(DiscoveryResponse& a, DiscoveryResponse& b) {
    a.Swap(&b);
  }

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

  inline DiscoveryResponse* New() const final {
    return CreateMaybeMessage<DiscoveryResponse>(nullptr);
  }

  DiscoveryResponse* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DiscoveryResponse>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DiscoveryResponse& from);
  void MergeFrom(const DiscoveryResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DiscoveryResponse* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // repeated .google.protobuf.Any resources = 2 [(.gogoproto.nullable) = false];
  int resources_size() const;
  void clear_resources();
  static const int kResourcesFieldNumber = 2;
  ::google::protobuf::Any* mutable_resources(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >*
      mutable_resources();
  const ::google::protobuf::Any& resources(int index) const;
  ::google::protobuf::Any* add_resources();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >&
      resources() const;

  // string version_info = 1;
  void clear_version_info();
  static const int kVersionInfoFieldNumber = 1;
  const ::std::string& version_info() const;
  void set_version_info(const ::std::string& value);
  #if LANG_CXX11
  void set_version_info(::std::string&& value);
  #endif
  void set_version_info(const char* value);
  void set_version_info(const char* value, size_t size);
  ::std::string* mutable_version_info();
  ::std::string* release_version_info();
  void set_allocated_version_info(::std::string* version_info);

  // string type_url = 4;
  void clear_type_url();
  static const int kTypeUrlFieldNumber = 4;
  const ::std::string& type_url() const;
  void set_type_url(const ::std::string& value);
  #if LANG_CXX11
  void set_type_url(::std::string&& value);
  #endif
  void set_type_url(const char* value);
  void set_type_url(const char* value, size_t size);
  ::std::string* mutable_type_url();
  ::std::string* release_type_url();
  void set_allocated_type_url(::std::string* type_url);

  // string nonce = 5;
  void clear_nonce();
  static const int kNonceFieldNumber = 5;
  const ::std::string& nonce() const;
  void set_nonce(const ::std::string& value);
  #if LANG_CXX11
  void set_nonce(::std::string&& value);
  #endif
  void set_nonce(const char* value);
  void set_nonce(const char* value, size_t size);
  ::std::string* mutable_nonce();
  ::std::string* release_nonce();
  void set_allocated_nonce(::std::string* nonce);

  // .google.rpc.Status error_detail = 80;
  bool has_error_detail() const;
  void clear_error_detail();
  static const int kErrorDetailFieldNumber = 80;
  const ::google::rpc::Status& error_detail() const;
  ::google::rpc::Status* release_error_detail();
  ::google::rpc::Status* mutable_error_detail();
  void set_allocated_error_detail(::google::rpc::Status* error_detail);

  // .envoy.api.v2.DiscoveryResponseExpand expand_field = 90;
  bool has_expand_field() const;
  void clear_expand_field();
  static const int kExpandFieldFieldNumber = 90;
  const ::envoy::api::v2::DiscoveryResponseExpand& expand_field() const;
  ::envoy::api::v2::DiscoveryResponseExpand* release_expand_field();
  ::envoy::api::v2::DiscoveryResponseExpand* mutable_expand_field();
  void set_allocated_expand_field(::envoy::api::v2::DiscoveryResponseExpand* expand_field);

  // bool canary = 3;
  void clear_canary();
  static const int kCanaryFieldNumber = 3;
  bool canary() const;
  void set_canary(bool value);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.DiscoveryResponse)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > resources_;
  ::google::protobuf::internal::ArenaStringPtr version_info_;
  ::google::protobuf::internal::ArenaStringPtr type_url_;
  ::google::protobuf::internal::ArenaStringPtr nonce_;
  ::google::rpc::Status* error_detail_;
  ::envoy::api::v2::DiscoveryResponseExpand* expand_field_;
  bool canary_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class DiscoveryResponseExpand :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.DiscoveryResponseExpand) */ {
 public:
  DiscoveryResponseExpand();
  virtual ~DiscoveryResponseExpand();

  DiscoveryResponseExpand(const DiscoveryResponseExpand& from);

  inline DiscoveryResponseExpand& operator=(const DiscoveryResponseExpand& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  DiscoveryResponseExpand(DiscoveryResponseExpand&& from) noexcept
    : DiscoveryResponseExpand() {
    *this = ::std::move(from);
  }

  inline DiscoveryResponseExpand& operator=(DiscoveryResponseExpand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const DiscoveryResponseExpand& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DiscoveryResponseExpand* internal_default_instance() {
    return reinterpret_cast<const DiscoveryResponseExpand*>(
               &_DiscoveryResponseExpand_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(DiscoveryResponseExpand* other);
  friend void swap(DiscoveryResponseExpand& a, DiscoveryResponseExpand& b) {
    a.Swap(&b);
  }

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

  inline DiscoveryResponseExpand* New() const final {
    return CreateMaybeMessage<DiscoveryResponseExpand>(nullptr);
  }

  DiscoveryResponseExpand* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DiscoveryResponseExpand>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DiscoveryResponseExpand& from);
  void MergeFrom(const DiscoveryResponseExpand& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DiscoveryResponseExpand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .envoy.api.v2.CheckMessage check_message = 1;
  bool has_check_message() const;
  void clear_check_message();
  static const int kCheckMessageFieldNumber = 1;
  const ::envoy::api::v2::CheckMessage& check_message() const;
  ::envoy::api::v2::CheckMessage* release_check_message();
  ::envoy::api::v2::CheckMessage* mutable_check_message();
  void set_allocated_check_message(::envoy::api::v2::CheckMessage* check_message);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.DiscoveryResponseExpand)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::envoy::api::v2::CheckMessage* check_message_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class CheckMessage :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.CheckMessage) */ {
 public:
  CheckMessage();
  virtual ~CheckMessage();

  CheckMessage(const CheckMessage& from);

  inline CheckMessage& operator=(const CheckMessage& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  CheckMessage(CheckMessage&& from) noexcept
    : CheckMessage() {
    *this = ::std::move(from);
  }

  inline CheckMessage& operator=(CheckMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const CheckMessage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CheckMessage* internal_default_instance() {
    return reinterpret_cast<const CheckMessage*>(
               &_CheckMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(CheckMessage* other);
  friend void swap(CheckMessage& a, CheckMessage& b) {
    a.Swap(&b);
  }

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

  inline CheckMessage* New() const final {
    return CreateMaybeMessage<CheckMessage>(nullptr);
  }

  CheckMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<CheckMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const CheckMessage& from);
  void MergeFrom(const CheckMessage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CheckMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // repeated .envoy.api.v2.CRSummary cr_summarys = 1;
  int cr_summarys_size() const;
  void clear_cr_summarys();
  static const int kCrSummarysFieldNumber = 1;
  ::envoy::api::v2::CRSummary* mutable_cr_summarys(int index);
  ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::CRSummary >*
      mutable_cr_summarys();
  const ::envoy::api::v2::CRSummary& cr_summarys(int index) const;
  ::envoy::api::v2::CRSummary* add_cr_summarys();
  const ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::CRSummary >&
      cr_summarys() const;

  // @@protoc_insertion_point(class_scope:envoy.api.v2.CheckMessage)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::CRSummary > cr_summarys_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class CRSummary :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.CRSummary) */ {
 public:
  CRSummary();
  virtual ~CRSummary();

  CRSummary(const CRSummary& from);

  inline CRSummary& operator=(const CRSummary& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  CRSummary(CRSummary&& from) noexcept
    : CRSummary() {
    *this = ::std::move(from);
  }

  inline CRSummary& operator=(CRSummary&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const CRSummary& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CRSummary* internal_default_instance() {
    return reinterpret_cast<const CRSummary*>(
               &_CRSummary_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(CRSummary* other);
  friend void swap(CRSummary& a, CRSummary& b) {
    a.Swap(&b);
  }

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

  inline CRSummary* New() const final {
    return CreateMaybeMessage<CRSummary>(nullptr);
  }

  CRSummary* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<CRSummary>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const CRSummary& from);
  void MergeFrom(const CRSummary& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CRSummary* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // string cr_name = 1;
  void clear_cr_name();
  static const int kCrNameFieldNumber = 1;
  const ::std::string& cr_name() const;
  void set_cr_name(const ::std::string& value);
  #if LANG_CXX11
  void set_cr_name(::std::string&& value);
  #endif
  void set_cr_name(const char* value);
  void set_cr_name(const char* value, size_t size);
  ::std::string* mutable_cr_name();
  ::std::string* release_cr_name();
  void set_allocated_cr_name(::std::string* cr_name);

  // string cr_kind = 2;
  void clear_cr_kind();
  static const int kCrKindFieldNumber = 2;
  const ::std::string& cr_kind() const;
  void set_cr_kind(const ::std::string& value);
  #if LANG_CXX11
  void set_cr_kind(::std::string&& value);
  #endif
  void set_cr_kind(const char* value);
  void set_cr_kind(const char* value, size_t size);
  ::std::string* mutable_cr_kind();
  ::std::string* release_cr_kind();
  void set_allocated_cr_kind(::std::string* cr_kind);

  // string cr_version = 3;
  void clear_cr_version();
  static const int kCrVersionFieldNumber = 3;
  const ::std::string& cr_version() const;
  void set_cr_version(const ::std::string& value);
  #if LANG_CXX11
  void set_cr_version(::std::string&& value);
  #endif
  void set_cr_version(const char* value);
  void set_cr_version(const char* value, size_t size);
  ::std::string* mutable_cr_version();
  ::std::string* release_cr_version();
  void set_allocated_cr_version(::std::string* cr_version);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.CRSummary)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr cr_name_;
  ::google::protobuf::internal::ArenaStringPtr cr_kind_;
  ::google::protobuf::internal::ArenaStringPtr cr_version_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
static bool _ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  typedef ::google::protobuf::internal::MapEntry<IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse();
  IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse& other);
  static const IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse*>(&_IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class IncrementalDiscoveryRequest :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.IncrementalDiscoveryRequest) */ {
 public:
  IncrementalDiscoveryRequest();
  virtual ~IncrementalDiscoveryRequest();

  IncrementalDiscoveryRequest(const IncrementalDiscoveryRequest& from);

  inline IncrementalDiscoveryRequest& operator=(const IncrementalDiscoveryRequest& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  IncrementalDiscoveryRequest(IncrementalDiscoveryRequest&& from) noexcept
    : IncrementalDiscoveryRequest() {
    *this = ::std::move(from);
  }

  inline IncrementalDiscoveryRequest& operator=(IncrementalDiscoveryRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const IncrementalDiscoveryRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IncrementalDiscoveryRequest* internal_default_instance() {
    return reinterpret_cast<const IncrementalDiscoveryRequest*>(
               &_IncrementalDiscoveryRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  void Swap(IncrementalDiscoveryRequest* other);
  friend void swap(IncrementalDiscoveryRequest& a, IncrementalDiscoveryRequest& b) {
    a.Swap(&b);
  }

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

  inline IncrementalDiscoveryRequest* New() const final {
    return CreateMaybeMessage<IncrementalDiscoveryRequest>(nullptr);
  }

  IncrementalDiscoveryRequest* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<IncrementalDiscoveryRequest>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const IncrementalDiscoveryRequest& from);
  void MergeFrom(const IncrementalDiscoveryRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IncrementalDiscoveryRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


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

  // repeated string resource_names_subscribe = 3;
  int resource_names_subscribe_size() const;
  void clear_resource_names_subscribe();
  static const int kResourceNamesSubscribeFieldNumber = 3;
  const ::std::string& resource_names_subscribe(int index) const;
  ::std::string* mutable_resource_names_subscribe(int index);
  void set_resource_names_subscribe(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_resource_names_subscribe(int index, ::std::string&& value);
  #endif
  void set_resource_names_subscribe(int index, const char* value);
  void set_resource_names_subscribe(int index, const char* value, size_t size);
  ::std::string* add_resource_names_subscribe();
  void add_resource_names_subscribe(const ::std::string& value);
  #if LANG_CXX11
  void add_resource_names_subscribe(::std::string&& value);
  #endif
  void add_resource_names_subscribe(const char* value);
  void add_resource_names_subscribe(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField<::std::string>& resource_names_subscribe() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* mutable_resource_names_subscribe();

  // repeated string resource_names_unsubscribe = 4;
  int resource_names_unsubscribe_size() const;
  void clear_resource_names_unsubscribe();
  static const int kResourceNamesUnsubscribeFieldNumber = 4;
  const ::std::string& resource_names_unsubscribe(int index) const;
  ::std::string* mutable_resource_names_unsubscribe(int index);
  void set_resource_names_unsubscribe(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_resource_names_unsubscribe(int index, ::std::string&& value);
  #endif
  void set_resource_names_unsubscribe(int index, const char* value);
  void set_resource_names_unsubscribe(int index, const char* value, size_t size);
  ::std::string* add_resource_names_unsubscribe();
  void add_resource_names_unsubscribe(const ::std::string& value);
  #if LANG_CXX11
  void add_resource_names_unsubscribe(::std::string&& value);
  #endif
  void add_resource_names_unsubscribe(const char* value);
  void add_resource_names_unsubscribe(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField<::std::string>& resource_names_unsubscribe() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* mutable_resource_names_unsubscribe();

  // map<string, string> initial_resource_versions = 5;
  int initial_resource_versions_size() const;
  void clear_initial_resource_versions();
  static const int kInitialResourceVersionsFieldNumber = 5;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      initial_resource_versions() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_initial_resource_versions();

  // string type_url = 2;
  void clear_type_url();
  static const int kTypeUrlFieldNumber = 2;
  const ::std::string& type_url() const;
  void set_type_url(const ::std::string& value);
  #if LANG_CXX11
  void set_type_url(::std::string&& value);
  #endif
  void set_type_url(const char* value);
  void set_type_url(const char* value, size_t size);
  ::std::string* mutable_type_url();
  ::std::string* release_type_url();
  void set_allocated_type_url(::std::string* type_url);

  // string response_nonce = 6;
  void clear_response_nonce();
  static const int kResponseNonceFieldNumber = 6;
  const ::std::string& response_nonce() const;
  void set_response_nonce(const ::std::string& value);
  #if LANG_CXX11
  void set_response_nonce(::std::string&& value);
  #endif
  void set_response_nonce(const char* value);
  void set_response_nonce(const char* value, size_t size);
  ::std::string* mutable_response_nonce();
  ::std::string* release_response_nonce();
  void set_allocated_response_nonce(::std::string* response_nonce);

  // .envoy.api.v2.core.Node node = 1;
  bool has_node() const;
  void clear_node();
  static const int kNodeFieldNumber = 1;
  const ::envoy::api::v2::core::Node& node() const;
  ::envoy::api::v2::core::Node* release_node();
  ::envoy::api::v2::core::Node* mutable_node();
  void set_allocated_node(::envoy::api::v2::core::Node* node);

  // .google.rpc.Status error_detail = 7;
  bool has_error_detail() const;
  void clear_error_detail();
  static const int kErrorDetailFieldNumber = 7;
  const ::google::rpc::Status& error_detail() const;
  ::google::rpc::Status* release_error_detail();
  ::google::rpc::Status* mutable_error_detail();
  void set_allocated_error_detail(::google::rpc::Status* error_detail);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.IncrementalDiscoveryRequest)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField<::std::string> resource_names_subscribe_;
  ::google::protobuf::RepeatedPtrField<::std::string> resource_names_unsubscribe_;
  ::google::protobuf::internal::MapField<
      IncrementalDiscoveryRequest_InitialResourceVersionsEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > initial_resource_versions_;
  ::google::protobuf::internal::ArenaStringPtr type_url_;
  ::google::protobuf::internal::ArenaStringPtr response_nonce_;
  ::envoy::api::v2::core::Node* node_;
  ::google::rpc::Status* error_detail_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class IncrementalDiscoveryResponse :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.IncrementalDiscoveryResponse) */ {
 public:
  IncrementalDiscoveryResponse();
  virtual ~IncrementalDiscoveryResponse();

  IncrementalDiscoveryResponse(const IncrementalDiscoveryResponse& from);

  inline IncrementalDiscoveryResponse& operator=(const IncrementalDiscoveryResponse& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  IncrementalDiscoveryResponse(IncrementalDiscoveryResponse&& from) noexcept
    : IncrementalDiscoveryResponse() {
    *this = ::std::move(from);
  }

  inline IncrementalDiscoveryResponse& operator=(IncrementalDiscoveryResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const IncrementalDiscoveryResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IncrementalDiscoveryResponse* internal_default_instance() {
    return reinterpret_cast<const IncrementalDiscoveryResponse*>(
               &_IncrementalDiscoveryResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  void Swap(IncrementalDiscoveryResponse* other);
  friend void swap(IncrementalDiscoveryResponse& a, IncrementalDiscoveryResponse& b) {
    a.Swap(&b);
  }

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

  inline IncrementalDiscoveryResponse* New() const final {
    return CreateMaybeMessage<IncrementalDiscoveryResponse>(nullptr);
  }

  IncrementalDiscoveryResponse* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<IncrementalDiscoveryResponse>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const IncrementalDiscoveryResponse& from);
  void MergeFrom(const IncrementalDiscoveryResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IncrementalDiscoveryResponse* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // repeated .envoy.api.v2.Resource resources = 2 [(.gogoproto.nullable) = false];
  int resources_size() const;
  void clear_resources();
  static const int kResourcesFieldNumber = 2;
  ::envoy::api::v2::Resource* mutable_resources(int index);
  ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::Resource >*
      mutable_resources();
  const ::envoy::api::v2::Resource& resources(int index) const;
  ::envoy::api::v2::Resource* add_resources();
  const ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::Resource >&
      resources() const;

  // repeated string removed_resources = 6;
  int removed_resources_size() const;
  void clear_removed_resources();
  static const int kRemovedResourcesFieldNumber = 6;
  const ::std::string& removed_resources(int index) const;
  ::std::string* mutable_removed_resources(int index);
  void set_removed_resources(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_removed_resources(int index, ::std::string&& value);
  #endif
  void set_removed_resources(int index, const char* value);
  void set_removed_resources(int index, const char* value, size_t size);
  ::std::string* add_removed_resources();
  void add_removed_resources(const ::std::string& value);
  #if LANG_CXX11
  void add_removed_resources(::std::string&& value);
  #endif
  void add_removed_resources(const char* value);
  void add_removed_resources(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField<::std::string>& removed_resources() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* mutable_removed_resources();

  // string system_version_info = 1;
  void clear_system_version_info();
  static const int kSystemVersionInfoFieldNumber = 1;
  const ::std::string& system_version_info() const;
  void set_system_version_info(const ::std::string& value);
  #if LANG_CXX11
  void set_system_version_info(::std::string&& value);
  #endif
  void set_system_version_info(const char* value);
  void set_system_version_info(const char* value, size_t size);
  ::std::string* mutable_system_version_info();
  ::std::string* release_system_version_info();
  void set_allocated_system_version_info(::std::string* system_version_info);

  // string nonce = 5;
  void clear_nonce();
  static const int kNonceFieldNumber = 5;
  const ::std::string& nonce() const;
  void set_nonce(const ::std::string& value);
  #if LANG_CXX11
  void set_nonce(::std::string&& value);
  #endif
  void set_nonce(const char* value);
  void set_nonce(const char* value, size_t size);
  ::std::string* mutable_nonce();
  ::std::string* release_nonce();
  void set_allocated_nonce(::std::string* nonce);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.IncrementalDiscoveryResponse)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::Resource > resources_;
  ::google::protobuf::RepeatedPtrField<::std::string> removed_resources_;
  ::google::protobuf::internal::ArenaStringPtr system_version_info_;
  ::google::protobuf::internal::ArenaStringPtr nonce_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// -------------------------------------------------------------------

class Resource :
    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:envoy.api.v2.Resource) */ {
 public:
  Resource();
  virtual ~Resource();

  Resource(const Resource& from);

  inline Resource& operator=(const Resource& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Resource(Resource&& from) noexcept
    : Resource() {
    *this = ::std::move(from);
  }

  inline Resource& operator=(Resource&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor() {
    return default_instance().GetDescriptor();
  }
  static const Resource& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Resource* internal_default_instance() {
    return reinterpret_cast<const Resource*>(
               &_Resource_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  void Swap(Resource* other);
  friend void swap(Resource& a, Resource& b) {
    a.Swap(&b);
  }

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

  inline Resource* New() const final {
    return CreateMaybeMessage<Resource>(nullptr);
  }

  Resource* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Resource>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Resource& from);
  void MergeFrom(const Resource& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
  #else
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Resource* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // string version = 1;
  void clear_version();
  static const int kVersionFieldNumber = 1;
  const ::std::string& version() const;
  void set_version(const ::std::string& value);
  #if LANG_CXX11
  void set_version(::std::string&& value);
  #endif
  void set_version(const char* value);
  void set_version(const char* value, size_t size);
  ::std::string* mutable_version();
  ::std::string* release_version();
  void set_allocated_version(::std::string* version);

  // .google.protobuf.Any resource = 2;
  bool has_resource() const;
  void clear_resource();
  static const int kResourceFieldNumber = 2;
  const ::google::protobuf::Any& resource() const;
  ::google::protobuf::Any* release_resource();
  ::google::protobuf::Any* mutable_resource();
  void set_allocated_resource(::google::protobuf::Any* resource);

  // @@protoc_insertion_point(class_scope:envoy.api.v2.Resource)
 private:
  class HasBitSetters;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr version_;
  ::google::protobuf::Any* resource_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_envoy_2fapi_2fv2_2fdiscovery_2eproto;
};
// ===================================================================


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

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

// string version_info = 1;
inline void DiscoveryRequest::clear_version_info() {
  version_info_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryRequest::version_info() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.version_info)
  return version_info_.GetNoArena();
}
inline void DiscoveryRequest::set_version_info(const ::std::string& value) {
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryRequest.version_info)
}
#if LANG_CXX11
inline void DiscoveryRequest::set_version_info(::std::string&& value) {
  
  version_info_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryRequest.version_info)
}
#endif
inline void DiscoveryRequest::set_version_info(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryRequest.version_info)
}
inline void DiscoveryRequest::set_version_info(const char* value, size_t size) {
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryRequest.version_info)
}
inline ::std::string* DiscoveryRequest::mutable_version_info() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.version_info)
  return version_info_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryRequest::release_version_info() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryRequest.version_info)
  
  return version_info_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryRequest::set_allocated_version_info(::std::string* version_info) {
  if (version_info != nullptr) {
    
  } else {
    
  }
  version_info_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version_info);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryRequest.version_info)
}

// .envoy.api.v2.core.Node node = 2;
inline bool DiscoveryRequest::has_node() const {
  return this != internal_default_instance() && node_ != nullptr;
}
inline const ::envoy::api::v2::core::Node& DiscoveryRequest::node() const {
  const ::envoy::api::v2::core::Node* p = node_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.node)
  return p != nullptr ? *p : *reinterpret_cast<const ::envoy::api::v2::core::Node*>(
      &::envoy::api::v2::core::_Node_default_instance_);
}
inline ::envoy::api::v2::core::Node* DiscoveryRequest::release_node() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryRequest.node)
  
  ::envoy::api::v2::core::Node* temp = node_;
  node_ = nullptr;
  return temp;
}
inline ::envoy::api::v2::core::Node* DiscoveryRequest::mutable_node() {
  
  if (node_ == nullptr) {
    auto* p = CreateMaybeMessage<::envoy::api::v2::core::Node>(GetArenaNoVirtual());
    node_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.node)
  return node_;
}
inline void DiscoveryRequest::set_allocated_node(::envoy::api::v2::core::Node* node) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(node_);
  }
  if (node) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      node = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, node, submessage_arena);
    }
    
  } else {
    
  }
  node_ = node;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryRequest.node)
}

// repeated string resource_names = 3;
inline int DiscoveryRequest::resource_names_size() const {
  return resource_names_.size();
}
inline void DiscoveryRequest::clear_resource_names() {
  resource_names_.Clear();
}
inline const ::std::string& DiscoveryRequest::resource_names(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.resource_names)
  return resource_names_.Get(index);
}
inline ::std::string* DiscoveryRequest::mutable_resource_names(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.resource_names)
  return resource_names_.Mutable(index);
}
inline void DiscoveryRequest::set_resource_names(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryRequest.resource_names)
  resource_names_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void DiscoveryRequest::set_resource_names(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryRequest.resource_names)
  resource_names_.Mutable(index)->assign(std::move(value));
}
#endif
inline void DiscoveryRequest::set_resource_names(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryRequest.resource_names)
}
inline void DiscoveryRequest::set_resource_names(int index, const char* value, size_t size) {
  resource_names_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryRequest.resource_names)
}
inline ::std::string* DiscoveryRequest::add_resource_names() {
  // @@protoc_insertion_point(field_add_mutable:envoy.api.v2.DiscoveryRequest.resource_names)
  return resource_names_.Add();
}
inline void DiscoveryRequest::add_resource_names(const ::std::string& value) {
  resource_names_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:envoy.api.v2.DiscoveryRequest.resource_names)
}
#if LANG_CXX11
inline void DiscoveryRequest::add_resource_names(::std::string&& value) {
  resource_names_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:envoy.api.v2.DiscoveryRequest.resource_names)
}
#endif
inline void DiscoveryRequest::add_resource_names(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:envoy.api.v2.DiscoveryRequest.resource_names)
}
inline void DiscoveryRequest::add_resource_names(const char* value, size_t size) {
  resource_names_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:envoy.api.v2.DiscoveryRequest.resource_names)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
DiscoveryRequest::resource_names() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.DiscoveryRequest.resource_names)
  return resource_names_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>*
DiscoveryRequest::mutable_resource_names() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.DiscoveryRequest.resource_names)
  return &resource_names_;
}

// string type_url = 4;
inline void DiscoveryRequest::clear_type_url() {
  type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryRequest::type_url() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.type_url)
  return type_url_.GetNoArena();
}
inline void DiscoveryRequest::set_type_url(const ::std::string& value) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryRequest.type_url)
}
#if LANG_CXX11
inline void DiscoveryRequest::set_type_url(::std::string&& value) {
  
  type_url_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryRequest.type_url)
}
#endif
inline void DiscoveryRequest::set_type_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryRequest.type_url)
}
inline void DiscoveryRequest::set_type_url(const char* value, size_t size) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryRequest.type_url)
}
inline ::std::string* DiscoveryRequest::mutable_type_url() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.type_url)
  return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryRequest::release_type_url() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryRequest.type_url)
  
  return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryRequest::set_allocated_type_url(::std::string* type_url) {
  if (type_url != nullptr) {
    
  } else {
    
  }
  type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryRequest.type_url)
}

// string response_nonce = 5;
inline void DiscoveryRequest::clear_response_nonce() {
  response_nonce_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryRequest::response_nonce() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.response_nonce)
  return response_nonce_.GetNoArena();
}
inline void DiscoveryRequest::set_response_nonce(const ::std::string& value) {
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryRequest.response_nonce)
}
#if LANG_CXX11
inline void DiscoveryRequest::set_response_nonce(::std::string&& value) {
  
  response_nonce_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryRequest.response_nonce)
}
#endif
inline void DiscoveryRequest::set_response_nonce(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryRequest.response_nonce)
}
inline void DiscoveryRequest::set_response_nonce(const char* value, size_t size) {
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryRequest.response_nonce)
}
inline ::std::string* DiscoveryRequest::mutable_response_nonce() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.response_nonce)
  return response_nonce_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryRequest::release_response_nonce() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryRequest.response_nonce)
  
  return response_nonce_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryRequest::set_allocated_response_nonce(::std::string* response_nonce) {
  if (response_nonce != nullptr) {
    
  } else {
    
  }
  response_nonce_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), response_nonce);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryRequest.response_nonce)
}

// .google.rpc.Status error_detail = 6;
inline bool DiscoveryRequest::has_error_detail() const {
  return this != internal_default_instance() && error_detail_ != nullptr;
}
inline const ::google::rpc::Status& DiscoveryRequest::error_detail() const {
  const ::google::rpc::Status* p = error_detail_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryRequest.error_detail)
  return p != nullptr ? *p : *reinterpret_cast<const ::google::rpc::Status*>(
      &::google::rpc::_Status_default_instance_);
}
inline ::google::rpc::Status* DiscoveryRequest::release_error_detail() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryRequest.error_detail)
  
  ::google::rpc::Status* temp = error_detail_;
  error_detail_ = nullptr;
  return temp;
}
inline ::google::rpc::Status* DiscoveryRequest::mutable_error_detail() {
  
  if (error_detail_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::rpc::Status>(GetArenaNoVirtual());
    error_detail_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryRequest.error_detail)
  return error_detail_;
}
inline void DiscoveryRequest::set_allocated_error_detail(::google::rpc::Status* error_detail) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(error_detail_);
  }
  if (error_detail) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      error_detail = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, error_detail, submessage_arena);
    }
    
  } else {
    
  }
  error_detail_ = error_detail;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryRequest.error_detail)
}

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

// DiscoveryResponse

// string version_info = 1;
inline void DiscoveryResponse::clear_version_info() {
  version_info_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryResponse::version_info() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.version_info)
  return version_info_.GetNoArena();
}
inline void DiscoveryResponse::set_version_info(const ::std::string& value) {
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryResponse.version_info)
}
#if LANG_CXX11
inline void DiscoveryResponse::set_version_info(::std::string&& value) {
  
  version_info_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryResponse.version_info)
}
#endif
inline void DiscoveryResponse::set_version_info(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryResponse.version_info)
}
inline void DiscoveryResponse::set_version_info(const char* value, size_t size) {
  
  version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryResponse.version_info)
}
inline ::std::string* DiscoveryResponse::mutable_version_info() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.version_info)
  return version_info_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryResponse::release_version_info() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponse.version_info)
  
  return version_info_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryResponse::set_allocated_version_info(::std::string* version_info) {
  if (version_info != nullptr) {
    
  } else {
    
  }
  version_info_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version_info);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponse.version_info)
}

// repeated .google.protobuf.Any resources = 2 [(.gogoproto.nullable) = false];
inline int DiscoveryResponse::resources_size() const {
  return resources_.size();
}
inline ::google::protobuf::Any* DiscoveryResponse::mutable_resources(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.resources)
  return resources_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >*
DiscoveryResponse::mutable_resources() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.DiscoveryResponse.resources)
  return &resources_;
}
inline const ::google::protobuf::Any& DiscoveryResponse::resources(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.resources)
  return resources_.Get(index);
}
inline ::google::protobuf::Any* DiscoveryResponse::add_resources() {
  // @@protoc_insertion_point(field_add:envoy.api.v2.DiscoveryResponse.resources)
  return resources_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >&
DiscoveryResponse::resources() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.DiscoveryResponse.resources)
  return resources_;
}

// bool canary = 3;
inline void DiscoveryResponse::clear_canary() {
  canary_ = false;
}
inline bool DiscoveryResponse::canary() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.canary)
  return canary_;
}
inline void DiscoveryResponse::set_canary(bool value) {
  
  canary_ = value;
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryResponse.canary)
}

// string type_url = 4;
inline void DiscoveryResponse::clear_type_url() {
  type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryResponse::type_url() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.type_url)
  return type_url_.GetNoArena();
}
inline void DiscoveryResponse::set_type_url(const ::std::string& value) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryResponse.type_url)
}
#if LANG_CXX11
inline void DiscoveryResponse::set_type_url(::std::string&& value) {
  
  type_url_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryResponse.type_url)
}
#endif
inline void DiscoveryResponse::set_type_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryResponse.type_url)
}
inline void DiscoveryResponse::set_type_url(const char* value, size_t size) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryResponse.type_url)
}
inline ::std::string* DiscoveryResponse::mutable_type_url() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.type_url)
  return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryResponse::release_type_url() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponse.type_url)
  
  return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryResponse::set_allocated_type_url(::std::string* type_url) {
  if (type_url != nullptr) {
    
  } else {
    
  }
  type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponse.type_url)
}

// string nonce = 5;
inline void DiscoveryResponse::clear_nonce() {
  nonce_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& DiscoveryResponse::nonce() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.nonce)
  return nonce_.GetNoArena();
}
inline void DiscoveryResponse::set_nonce(const ::std::string& value) {
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.DiscoveryResponse.nonce)
}
#if LANG_CXX11
inline void DiscoveryResponse::set_nonce(::std::string&& value) {
  
  nonce_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.DiscoveryResponse.nonce)
}
#endif
inline void DiscoveryResponse::set_nonce(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.DiscoveryResponse.nonce)
}
inline void DiscoveryResponse::set_nonce(const char* value, size_t size) {
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.DiscoveryResponse.nonce)
}
inline ::std::string* DiscoveryResponse::mutable_nonce() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.nonce)
  return nonce_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DiscoveryResponse::release_nonce() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponse.nonce)
  
  return nonce_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void DiscoveryResponse::set_allocated_nonce(::std::string* nonce) {
  if (nonce != nullptr) {
    
  } else {
    
  }
  nonce_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nonce);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponse.nonce)
}

// .google.rpc.Status error_detail = 80;
inline bool DiscoveryResponse::has_error_detail() const {
  return this != internal_default_instance() && error_detail_ != nullptr;
}
inline const ::google::rpc::Status& DiscoveryResponse::error_detail() const {
  const ::google::rpc::Status* p = error_detail_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.error_detail)
  return p != nullptr ? *p : *reinterpret_cast<const ::google::rpc::Status*>(
      &::google::rpc::_Status_default_instance_);
}
inline ::google::rpc::Status* DiscoveryResponse::release_error_detail() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponse.error_detail)
  
  ::google::rpc::Status* temp = error_detail_;
  error_detail_ = nullptr;
  return temp;
}
inline ::google::rpc::Status* DiscoveryResponse::mutable_error_detail() {
  
  if (error_detail_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::rpc::Status>(GetArenaNoVirtual());
    error_detail_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.error_detail)
  return error_detail_;
}
inline void DiscoveryResponse::set_allocated_error_detail(::google::rpc::Status* error_detail) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(error_detail_);
  }
  if (error_detail) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      error_detail = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, error_detail, submessage_arena);
    }
    
  } else {
    
  }
  error_detail_ = error_detail;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponse.error_detail)
}

// .envoy.api.v2.DiscoveryResponseExpand expand_field = 90;
inline bool DiscoveryResponse::has_expand_field() const {
  return this != internal_default_instance() && expand_field_ != nullptr;
}
inline void DiscoveryResponse::clear_expand_field() {
  if (GetArenaNoVirtual() == nullptr && expand_field_ != nullptr) {
    delete expand_field_;
  }
  expand_field_ = nullptr;
}
inline const ::envoy::api::v2::DiscoveryResponseExpand& DiscoveryResponse::expand_field() const {
  const ::envoy::api::v2::DiscoveryResponseExpand* p = expand_field_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponse.expand_field)
  return p != nullptr ? *p : *reinterpret_cast<const ::envoy::api::v2::DiscoveryResponseExpand*>(
      &::envoy::api::v2::_DiscoveryResponseExpand_default_instance_);
}
inline ::envoy::api::v2::DiscoveryResponseExpand* DiscoveryResponse::release_expand_field() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponse.expand_field)
  
  ::envoy::api::v2::DiscoveryResponseExpand* temp = expand_field_;
  expand_field_ = nullptr;
  return temp;
}
inline ::envoy::api::v2::DiscoveryResponseExpand* DiscoveryResponse::mutable_expand_field() {
  
  if (expand_field_ == nullptr) {
    auto* p = CreateMaybeMessage<::envoy::api::v2::DiscoveryResponseExpand>(GetArenaNoVirtual());
    expand_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponse.expand_field)
  return expand_field_;
}
inline void DiscoveryResponse::set_allocated_expand_field(::envoy::api::v2::DiscoveryResponseExpand* expand_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete expand_field_;
  }
  if (expand_field) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      expand_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, expand_field, submessage_arena);
    }
    
  } else {
    
  }
  expand_field_ = expand_field;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponse.expand_field)
}

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

// DiscoveryResponseExpand

// .envoy.api.v2.CheckMessage check_message = 1;
inline bool DiscoveryResponseExpand::has_check_message() const {
  return this != internal_default_instance() && check_message_ != nullptr;
}
inline void DiscoveryResponseExpand::clear_check_message() {
  if (GetArenaNoVirtual() == nullptr && check_message_ != nullptr) {
    delete check_message_;
  }
  check_message_ = nullptr;
}
inline const ::envoy::api::v2::CheckMessage& DiscoveryResponseExpand::check_message() const {
  const ::envoy::api::v2::CheckMessage* p = check_message_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.DiscoveryResponseExpand.check_message)
  return p != nullptr ? *p : *reinterpret_cast<const ::envoy::api::v2::CheckMessage*>(
      &::envoy::api::v2::_CheckMessage_default_instance_);
}
inline ::envoy::api::v2::CheckMessage* DiscoveryResponseExpand::release_check_message() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.DiscoveryResponseExpand.check_message)
  
  ::envoy::api::v2::CheckMessage* temp = check_message_;
  check_message_ = nullptr;
  return temp;
}
inline ::envoy::api::v2::CheckMessage* DiscoveryResponseExpand::mutable_check_message() {
  
  if (check_message_ == nullptr) {
    auto* p = CreateMaybeMessage<::envoy::api::v2::CheckMessage>(GetArenaNoVirtual());
    check_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.DiscoveryResponseExpand.check_message)
  return check_message_;
}
inline void DiscoveryResponseExpand::set_allocated_check_message(::envoy::api::v2::CheckMessage* check_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete check_message_;
  }
  if (check_message) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      check_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, check_message, submessage_arena);
    }
    
  } else {
    
  }
  check_message_ = check_message;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.DiscoveryResponseExpand.check_message)
}

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

// CheckMessage

// repeated .envoy.api.v2.CRSummary cr_summarys = 1;
inline int CheckMessage::cr_summarys_size() const {
  return cr_summarys_.size();
}
inline void CheckMessage::clear_cr_summarys() {
  cr_summarys_.Clear();
}
inline ::envoy::api::v2::CRSummary* CheckMessage::mutable_cr_summarys(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.CheckMessage.cr_summarys)
  return cr_summarys_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::CRSummary >*
CheckMessage::mutable_cr_summarys() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.CheckMessage.cr_summarys)
  return &cr_summarys_;
}
inline const ::envoy::api::v2::CRSummary& CheckMessage::cr_summarys(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.CheckMessage.cr_summarys)
  return cr_summarys_.Get(index);
}
inline ::envoy::api::v2::CRSummary* CheckMessage::add_cr_summarys() {
  // @@protoc_insertion_point(field_add:envoy.api.v2.CheckMessage.cr_summarys)
  return cr_summarys_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::CRSummary >&
CheckMessage::cr_summarys() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.CheckMessage.cr_summarys)
  return cr_summarys_;
}

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

// CRSummary

// string cr_name = 1;
inline void CRSummary::clear_cr_name() {
  cr_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& CRSummary::cr_name() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.CRSummary.cr_name)
  return cr_name_.GetNoArena();
}
inline void CRSummary::set_cr_name(const ::std::string& value) {
  
  cr_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.CRSummary.cr_name)
}
#if LANG_CXX11
inline void CRSummary::set_cr_name(::std::string&& value) {
  
  cr_name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.CRSummary.cr_name)
}
#endif
inline void CRSummary::set_cr_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  cr_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.CRSummary.cr_name)
}
inline void CRSummary::set_cr_name(const char* value, size_t size) {
  
  cr_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.CRSummary.cr_name)
}
inline ::std::string* CRSummary::mutable_cr_name() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.CRSummary.cr_name)
  return cr_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* CRSummary::release_cr_name() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.CRSummary.cr_name)
  
  return cr_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void CRSummary::set_allocated_cr_name(::std::string* cr_name) {
  if (cr_name != nullptr) {
    
  } else {
    
  }
  cr_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cr_name);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.CRSummary.cr_name)
}

// string cr_kind = 2;
inline void CRSummary::clear_cr_kind() {
  cr_kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& CRSummary::cr_kind() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.CRSummary.cr_kind)
  return cr_kind_.GetNoArena();
}
inline void CRSummary::set_cr_kind(const ::std::string& value) {
  
  cr_kind_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.CRSummary.cr_kind)
}
#if LANG_CXX11
inline void CRSummary::set_cr_kind(::std::string&& value) {
  
  cr_kind_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.CRSummary.cr_kind)
}
#endif
inline void CRSummary::set_cr_kind(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  cr_kind_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.CRSummary.cr_kind)
}
inline void CRSummary::set_cr_kind(const char* value, size_t size) {
  
  cr_kind_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.CRSummary.cr_kind)
}
inline ::std::string* CRSummary::mutable_cr_kind() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.CRSummary.cr_kind)
  return cr_kind_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* CRSummary::release_cr_kind() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.CRSummary.cr_kind)
  
  return cr_kind_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void CRSummary::set_allocated_cr_kind(::std::string* cr_kind) {
  if (cr_kind != nullptr) {
    
  } else {
    
  }
  cr_kind_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cr_kind);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.CRSummary.cr_kind)
}

// string cr_version = 3;
inline void CRSummary::clear_cr_version() {
  cr_version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& CRSummary::cr_version() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.CRSummary.cr_version)
  return cr_version_.GetNoArena();
}
inline void CRSummary::set_cr_version(const ::std::string& value) {
  
  cr_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.CRSummary.cr_version)
}
#if LANG_CXX11
inline void CRSummary::set_cr_version(::std::string&& value) {
  
  cr_version_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.CRSummary.cr_version)
}
#endif
inline void CRSummary::set_cr_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  cr_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.CRSummary.cr_version)
}
inline void CRSummary::set_cr_version(const char* value, size_t size) {
  
  cr_version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.CRSummary.cr_version)
}
inline ::std::string* CRSummary::mutable_cr_version() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.CRSummary.cr_version)
  return cr_version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* CRSummary::release_cr_version() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.CRSummary.cr_version)
  
  return cr_version_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void CRSummary::set_allocated_cr_version(::std::string* cr_version) {
  if (cr_version != nullptr) {
    
  } else {
    
  }
  cr_version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cr_version);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.CRSummary.cr_version)
}

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

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

// IncrementalDiscoveryRequest

// .envoy.api.v2.core.Node node = 1;
inline bool IncrementalDiscoveryRequest::has_node() const {
  return this != internal_default_instance() && node_ != nullptr;
}
inline const ::envoy::api::v2::core::Node& IncrementalDiscoveryRequest::node() const {
  const ::envoy::api::v2::core::Node* p = node_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.node)
  return p != nullptr ? *p : *reinterpret_cast<const ::envoy::api::v2::core::Node*>(
      &::envoy::api::v2::core::_Node_default_instance_);
}
inline ::envoy::api::v2::core::Node* IncrementalDiscoveryRequest::release_node() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryRequest.node)
  
  ::envoy::api::v2::core::Node* temp = node_;
  node_ = nullptr;
  return temp;
}
inline ::envoy::api::v2::core::Node* IncrementalDiscoveryRequest::mutable_node() {
  
  if (node_ == nullptr) {
    auto* p = CreateMaybeMessage<::envoy::api::v2::core::Node>(GetArenaNoVirtual());
    node_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.node)
  return node_;
}
inline void IncrementalDiscoveryRequest::set_allocated_node(::envoy::api::v2::core::Node* node) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(node_);
  }
  if (node) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      node = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, node, submessage_arena);
    }
    
  } else {
    
  }
  node_ = node;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryRequest.node)
}

// string type_url = 2;
inline void IncrementalDiscoveryRequest::clear_type_url() {
  type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& IncrementalDiscoveryRequest::type_url() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
  return type_url_.GetNoArena();
}
inline void IncrementalDiscoveryRequest::set_type_url(const ::std::string& value) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::set_type_url(::std::string&& value) {
  
  type_url_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
}
#endif
inline void IncrementalDiscoveryRequest::set_type_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
}
inline void IncrementalDiscoveryRequest::set_type_url(const char* value, size_t size) {
  
  type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
}
inline ::std::string* IncrementalDiscoveryRequest::mutable_type_url() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
  return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* IncrementalDiscoveryRequest::release_type_url() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
  
  return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void IncrementalDiscoveryRequest::set_allocated_type_url(::std::string* type_url) {
  if (type_url != nullptr) {
    
  } else {
    
  }
  type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryRequest.type_url)
}

// repeated string resource_names_subscribe = 3;
inline int IncrementalDiscoveryRequest::resource_names_subscribe_size() const {
  return resource_names_subscribe_.size();
}
inline void IncrementalDiscoveryRequest::clear_resource_names_subscribe() {
  resource_names_subscribe_.Clear();
}
inline const ::std::string& IncrementalDiscoveryRequest::resource_names_subscribe(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  return resource_names_subscribe_.Get(index);
}
inline ::std::string* IncrementalDiscoveryRequest::mutable_resource_names_subscribe(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  return resource_names_subscribe_.Mutable(index);
}
inline void IncrementalDiscoveryRequest::set_resource_names_subscribe(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  resource_names_subscribe_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::set_resource_names_subscribe(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  resource_names_subscribe_.Mutable(index)->assign(std::move(value));
}
#endif
inline void IncrementalDiscoveryRequest::set_resource_names_subscribe(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_subscribe_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
inline void IncrementalDiscoveryRequest::set_resource_names_subscribe(int index, const char* value, size_t size) {
  resource_names_subscribe_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
inline ::std::string* IncrementalDiscoveryRequest::add_resource_names_subscribe() {
  // @@protoc_insertion_point(field_add_mutable:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  return resource_names_subscribe_.Add();
}
inline void IncrementalDiscoveryRequest::add_resource_names_subscribe(const ::std::string& value) {
  resource_names_subscribe_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::add_resource_names_subscribe(::std::string&& value) {
  resource_names_subscribe_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
#endif
inline void IncrementalDiscoveryRequest::add_resource_names_subscribe(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_subscribe_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
inline void IncrementalDiscoveryRequest::add_resource_names_subscribe(const char* value, size_t size) {
  resource_names_subscribe_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
IncrementalDiscoveryRequest::resource_names_subscribe() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  return resource_names_subscribe_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>*
IncrementalDiscoveryRequest::mutable_resource_names_subscribe() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_subscribe)
  return &resource_names_subscribe_;
}

// repeated string resource_names_unsubscribe = 4;
inline int IncrementalDiscoveryRequest::resource_names_unsubscribe_size() const {
  return resource_names_unsubscribe_.size();
}
inline void IncrementalDiscoveryRequest::clear_resource_names_unsubscribe() {
  resource_names_unsubscribe_.Clear();
}
inline const ::std::string& IncrementalDiscoveryRequest::resource_names_unsubscribe(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  return resource_names_unsubscribe_.Get(index);
}
inline ::std::string* IncrementalDiscoveryRequest::mutable_resource_names_unsubscribe(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  return resource_names_unsubscribe_.Mutable(index);
}
inline void IncrementalDiscoveryRequest::set_resource_names_unsubscribe(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  resource_names_unsubscribe_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::set_resource_names_unsubscribe(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  resource_names_unsubscribe_.Mutable(index)->assign(std::move(value));
}
#endif
inline void IncrementalDiscoveryRequest::set_resource_names_unsubscribe(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_unsubscribe_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
inline void IncrementalDiscoveryRequest::set_resource_names_unsubscribe(int index, const char* value, size_t size) {
  resource_names_unsubscribe_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
inline ::std::string* IncrementalDiscoveryRequest::add_resource_names_unsubscribe() {
  // @@protoc_insertion_point(field_add_mutable:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  return resource_names_unsubscribe_.Add();
}
inline void IncrementalDiscoveryRequest::add_resource_names_unsubscribe(const ::std::string& value) {
  resource_names_unsubscribe_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::add_resource_names_unsubscribe(::std::string&& value) {
  resource_names_unsubscribe_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
#endif
inline void IncrementalDiscoveryRequest::add_resource_names_unsubscribe(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  resource_names_unsubscribe_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
inline void IncrementalDiscoveryRequest::add_resource_names_unsubscribe(const char* value, size_t size) {
  resource_names_unsubscribe_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
IncrementalDiscoveryRequest::resource_names_unsubscribe() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  return resource_names_unsubscribe_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>*
IncrementalDiscoveryRequest::mutable_resource_names_unsubscribe() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.IncrementalDiscoveryRequest.resource_names_unsubscribe)
  return &resource_names_unsubscribe_;
}

// map<string, string> initial_resource_versions = 5;
inline int IncrementalDiscoveryRequest::initial_resource_versions_size() const {
  return initial_resource_versions_.size();
}
inline void IncrementalDiscoveryRequest::clear_initial_resource_versions() {
  initial_resource_versions_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
IncrementalDiscoveryRequest::initial_resource_versions() const {
  // @@protoc_insertion_point(field_map:envoy.api.v2.IncrementalDiscoveryRequest.initial_resource_versions)
  return initial_resource_versions_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
IncrementalDiscoveryRequest::mutable_initial_resource_versions() {
  // @@protoc_insertion_point(field_mutable_map:envoy.api.v2.IncrementalDiscoveryRequest.initial_resource_versions)
  return initial_resource_versions_.MutableMap();
}

// string response_nonce = 6;
inline void IncrementalDiscoveryRequest::clear_response_nonce() {
  response_nonce_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& IncrementalDiscoveryRequest::response_nonce() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
  return response_nonce_.GetNoArena();
}
inline void IncrementalDiscoveryRequest::set_response_nonce(const ::std::string& value) {
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
}
#if LANG_CXX11
inline void IncrementalDiscoveryRequest::set_response_nonce(::std::string&& value) {
  
  response_nonce_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
}
#endif
inline void IncrementalDiscoveryRequest::set_response_nonce(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
}
inline void IncrementalDiscoveryRequest::set_response_nonce(const char* value, size_t size) {
  
  response_nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
}
inline ::std::string* IncrementalDiscoveryRequest::mutable_response_nonce() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
  return response_nonce_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* IncrementalDiscoveryRequest::release_response_nonce() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
  
  return response_nonce_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void IncrementalDiscoveryRequest::set_allocated_response_nonce(::std::string* response_nonce) {
  if (response_nonce != nullptr) {
    
  } else {
    
  }
  response_nonce_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), response_nonce);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryRequest.response_nonce)
}

// .google.rpc.Status error_detail = 7;
inline bool IncrementalDiscoveryRequest::has_error_detail() const {
  return this != internal_default_instance() && error_detail_ != nullptr;
}
inline const ::google::rpc::Status& IncrementalDiscoveryRequest::error_detail() const {
  const ::google::rpc::Status* p = error_detail_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryRequest.error_detail)
  return p != nullptr ? *p : *reinterpret_cast<const ::google::rpc::Status*>(
      &::google::rpc::_Status_default_instance_);
}
inline ::google::rpc::Status* IncrementalDiscoveryRequest::release_error_detail() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryRequest.error_detail)
  
  ::google::rpc::Status* temp = error_detail_;
  error_detail_ = nullptr;
  return temp;
}
inline ::google::rpc::Status* IncrementalDiscoveryRequest::mutable_error_detail() {
  
  if (error_detail_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::rpc::Status>(GetArenaNoVirtual());
    error_detail_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryRequest.error_detail)
  return error_detail_;
}
inline void IncrementalDiscoveryRequest::set_allocated_error_detail(::google::rpc::Status* error_detail) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(error_detail_);
  }
  if (error_detail) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      error_detail = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, error_detail, submessage_arena);
    }
    
  } else {
    
  }
  error_detail_ = error_detail;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryRequest.error_detail)
}

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

// IncrementalDiscoveryResponse

// string system_version_info = 1;
inline void IncrementalDiscoveryResponse::clear_system_version_info() {
  system_version_info_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& IncrementalDiscoveryResponse::system_version_info() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
  return system_version_info_.GetNoArena();
}
inline void IncrementalDiscoveryResponse::set_system_version_info(const ::std::string& value) {
  
  system_version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
}
#if LANG_CXX11
inline void IncrementalDiscoveryResponse::set_system_version_info(::std::string&& value) {
  
  system_version_info_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
}
#endif
inline void IncrementalDiscoveryResponse::set_system_version_info(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  system_version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
}
inline void IncrementalDiscoveryResponse::set_system_version_info(const char* value, size_t size) {
  
  system_version_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
}
inline ::std::string* IncrementalDiscoveryResponse::mutable_system_version_info() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
  return system_version_info_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* IncrementalDiscoveryResponse::release_system_version_info() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
  
  return system_version_info_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void IncrementalDiscoveryResponse::set_allocated_system_version_info(::std::string* system_version_info) {
  if (system_version_info != nullptr) {
    
  } else {
    
  }
  system_version_info_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), system_version_info);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryResponse.system_version_info)
}

// repeated .envoy.api.v2.Resource resources = 2 [(.gogoproto.nullable) = false];
inline int IncrementalDiscoveryResponse::resources_size() const {
  return resources_.size();
}
inline void IncrementalDiscoveryResponse::clear_resources() {
  resources_.Clear();
}
inline ::envoy::api::v2::Resource* IncrementalDiscoveryResponse::mutable_resources(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryResponse.resources)
  return resources_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::Resource >*
IncrementalDiscoveryResponse::mutable_resources() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.IncrementalDiscoveryResponse.resources)
  return &resources_;
}
inline const ::envoy::api::v2::Resource& IncrementalDiscoveryResponse::resources(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryResponse.resources)
  return resources_.Get(index);
}
inline ::envoy::api::v2::Resource* IncrementalDiscoveryResponse::add_resources() {
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryResponse.resources)
  return resources_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::envoy::api::v2::Resource >&
IncrementalDiscoveryResponse::resources() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.IncrementalDiscoveryResponse.resources)
  return resources_;
}

// repeated string removed_resources = 6;
inline int IncrementalDiscoveryResponse::removed_resources_size() const {
  return removed_resources_.size();
}
inline void IncrementalDiscoveryResponse::clear_removed_resources() {
  removed_resources_.Clear();
}
inline const ::std::string& IncrementalDiscoveryResponse::removed_resources(int index) const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  return removed_resources_.Get(index);
}
inline ::std::string* IncrementalDiscoveryResponse::mutable_removed_resources(int index) {
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  return removed_resources_.Mutable(index);
}
inline void IncrementalDiscoveryResponse::set_removed_resources(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  removed_resources_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void IncrementalDiscoveryResponse::set_removed_resources(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  removed_resources_.Mutable(index)->assign(std::move(value));
}
#endif
inline void IncrementalDiscoveryResponse::set_removed_resources(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  removed_resources_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
inline void IncrementalDiscoveryResponse::set_removed_resources(int index, const char* value, size_t size) {
  removed_resources_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
inline ::std::string* IncrementalDiscoveryResponse::add_removed_resources() {
  // @@protoc_insertion_point(field_add_mutable:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  return removed_resources_.Add();
}
inline void IncrementalDiscoveryResponse::add_removed_resources(const ::std::string& value) {
  removed_resources_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
#if LANG_CXX11
inline void IncrementalDiscoveryResponse::add_removed_resources(::std::string&& value) {
  removed_resources_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
#endif
inline void IncrementalDiscoveryResponse::add_removed_resources(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  removed_resources_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
inline void IncrementalDiscoveryResponse::add_removed_resources(const char* value, size_t size) {
  removed_resources_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
IncrementalDiscoveryResponse::removed_resources() const {
  // @@protoc_insertion_point(field_list:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  return removed_resources_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>*
IncrementalDiscoveryResponse::mutable_removed_resources() {
  // @@protoc_insertion_point(field_mutable_list:envoy.api.v2.IncrementalDiscoveryResponse.removed_resources)
  return &removed_resources_;
}

// string nonce = 5;
inline void IncrementalDiscoveryResponse::clear_nonce() {
  nonce_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& IncrementalDiscoveryResponse::nonce() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
  return nonce_.GetNoArena();
}
inline void IncrementalDiscoveryResponse::set_nonce(const ::std::string& value) {
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
}
#if LANG_CXX11
inline void IncrementalDiscoveryResponse::set_nonce(::std::string&& value) {
  
  nonce_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
}
#endif
inline void IncrementalDiscoveryResponse::set_nonce(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
}
inline void IncrementalDiscoveryResponse::set_nonce(const char* value, size_t size) {
  
  nonce_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
}
inline ::std::string* IncrementalDiscoveryResponse::mutable_nonce() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
  return nonce_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* IncrementalDiscoveryResponse::release_nonce() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
  
  return nonce_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void IncrementalDiscoveryResponse::set_allocated_nonce(::std::string* nonce) {
  if (nonce != nullptr) {
    
  } else {
    
  }
  nonce_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nonce);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.IncrementalDiscoveryResponse.nonce)
}

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

// Resource

// string version = 1;
inline void Resource::clear_version() {
  version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Resource::version() const {
  // @@protoc_insertion_point(field_get:envoy.api.v2.Resource.version)
  return version_.GetNoArena();
}
inline void Resource::set_version(const ::std::string& value) {
  
  version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:envoy.api.v2.Resource.version)
}
#if LANG_CXX11
inline void Resource::set_version(::std::string&& value) {
  
  version_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:envoy.api.v2.Resource.version)
}
#endif
inline void Resource::set_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:envoy.api.v2.Resource.version)
}
inline void Resource::set_version(const char* value, size_t size) {
  
  version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:envoy.api.v2.Resource.version)
}
inline ::std::string* Resource::mutable_version() {
  
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.Resource.version)
  return version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Resource::release_version() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.Resource.version)
  
  return version_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Resource::set_allocated_version(::std::string* version) {
  if (version != nullptr) {
    
  } else {
    
  }
  version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version);
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.Resource.version)
}

// .google.protobuf.Any resource = 2;
inline bool Resource::has_resource() const {
  return this != internal_default_instance() && resource_ != nullptr;
}
inline const ::google::protobuf::Any& Resource::resource() const {
  const ::google::protobuf::Any* p = resource_;
  // @@protoc_insertion_point(field_get:envoy.api.v2.Resource.resource)
  return p != nullptr ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* Resource::release_resource() {
  // @@protoc_insertion_point(field_release:envoy.api.v2.Resource.resource)
  
  ::google::protobuf::Any* temp = resource_;
  resource_ = nullptr;
  return temp;
}
inline ::google::protobuf::Any* Resource::mutable_resource() {
  
  if (resource_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    resource_ = p;
  }
  // @@protoc_insertion_point(field_mutable:envoy.api.v2.Resource.resource)
  return resource_;
}
inline void Resource::set_allocated_resource(::google::protobuf::Any* resource) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(resource_);
  }
  if (resource) {
    ::google::protobuf::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      resource = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, resource, submessage_arena);
    }
    
  } else {
    
  }
  resource_ = resource;
  // @@protoc_insertion_point(field_set_allocated:envoy.api.v2.Resource.resource)
}

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace v2
}  // namespace api
}  // namespace envoy

// @@protoc_insertion_point(global_scope)

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