// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: gobgp.proto
// Protobuf C++ Version: 7.35.1

#ifndef gobgp_2eproto_2epb_2eh
#define gobgp_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_bases.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/message.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_reflection.h"
#include "google/protobuf/unknown_field_set.h"
#include "google/protobuf/any.pb.h"
#include "google/protobuf/empty.pb.h"
#include "google/protobuf/timestamp.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_gobgp_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_gobgp_2eproto {
  static const ::uint32_t offsets[];
};
extern "C" {
extern const ::google::protobuf::internal::DescriptorTable descriptor_table_gobgp_2eproto;
}  // extern "C"
namespace apipb {
enum AddBmpRequest_MonitoringPolicy : int;
extern const uint32_t AddBmpRequest_MonitoringPolicy_internal_data_[];
enum AsPathLength_Type : int;
extern const uint32_t AsPathLength_Type_internal_data_[];
enum CommunityAction_Type : int;
extern const uint32_t CommunityAction_Type_internal_data_[];
enum Conditions_RouteType : int;
extern const uint32_t Conditions_RouteType_internal_data_[];
enum DefinedType : int;
extern const uint32_t DefinedType_internal_data_[];
enum EnableMrtRequest_DumpType : int;
extern const uint32_t EnableMrtRequest_DumpType_internal_data_[];
enum Family_Afi : int;
extern const uint32_t Family_Afi_internal_data_[];
enum Family_Safi : int;
extern const uint32_t Family_Safi_internal_data_[];
enum ListPathRequest_SortType : int;
extern const uint32_t ListPathRequest_SortType_internal_data_[];
enum MatchSet_Type : int;
extern const uint32_t MatchSet_Type_internal_data_[];
enum MedAction_Type : int;
extern const uint32_t MedAction_Type_internal_data_[];
enum PeerState_AdminState : int;
extern const uint32_t PeerState_AdminState_internal_data_[];
enum PeerState_SessionState : int;
extern const uint32_t PeerState_SessionState_internal_data_[];
enum PeerType : int;
extern const uint32_t PeerType_internal_data_[];
enum PolicyDirection : int;
extern const uint32_t PolicyDirection_internal_data_[];
enum RemovePrivate : int;
extern const uint32_t RemovePrivate_internal_data_[];
enum ResetPeerRequest_SoftResetDirection : int;
extern const uint32_t ResetPeerRequest_SoftResetDirection_internal_data_[];
enum RouteAction : int;
extern const uint32_t RouteAction_internal_data_[];
enum SetLogLevelRequest_Level : int;
extern const uint32_t SetLogLevelRequest_Level_internal_data_[];
enum TableLookupPrefix_Type : int;
extern const uint32_t TableLookupPrefix_Type_internal_data_[];
enum TableType : int;
extern const uint32_t TableType_internal_data_[];
enum Validation_Reason : int;
extern const uint32_t Validation_Reason_internal_data_[];
enum Validation_State : int;
extern const uint32_t Validation_State_internal_data_[];
enum WatchEventRequest_Table_Filter_Type : int;
extern const uint32_t WatchEventRequest_Table_Filter_Type_internal_data_[];
enum WatchEventResponse_PeerEvent_Type : int;
extern const uint32_t WatchEventResponse_PeerEvent_Type_internal_data_[];
class Actions;
struct ActionsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ActionsGlobalsTypeInternal Actions_globals_;
extern const ::google::protobuf::internal::ClassDataFull Actions_class_data_;
#else
extern const ActionsGlobalsTypeInternal Actions_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddBmpRequest;
struct AddBmpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddBmpRequestGlobalsTypeInternal AddBmpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddBmpRequest_class_data_;
#else
extern const AddBmpRequestGlobalsTypeInternal AddBmpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddDefinedSetRequest;
struct AddDefinedSetRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddDefinedSetRequestGlobalsTypeInternal AddDefinedSetRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddDefinedSetRequest_class_data_;
#else
extern const AddDefinedSetRequestGlobalsTypeInternal AddDefinedSetRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddDynamicNeighborRequest;
struct AddDynamicNeighborRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddDynamicNeighborRequestGlobalsTypeInternal AddDynamicNeighborRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddDynamicNeighborRequest_class_data_;
#else
extern const AddDynamicNeighborRequestGlobalsTypeInternal AddDynamicNeighborRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPathRequest;
struct AddPathRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathRequestGlobalsTypeInternal AddPathRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPathRequest_class_data_;
#else
extern const AddPathRequestGlobalsTypeInternal AddPathRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPathResponse;
struct AddPathResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathResponseGlobalsTypeInternal AddPathResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPathResponse_class_data_;
#else
extern const AddPathResponseGlobalsTypeInternal AddPathResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPathStreamRequest;
struct AddPathStreamRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathStreamRequestGlobalsTypeInternal AddPathStreamRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPathStreamRequest_class_data_;
#else
extern const AddPathStreamRequestGlobalsTypeInternal AddPathStreamRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPaths;
struct AddPathsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathsGlobalsTypeInternal AddPaths_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPaths_class_data_;
#else
extern const AddPathsGlobalsTypeInternal AddPaths_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPathsConfig;
struct AddPathsConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathsConfigGlobalsTypeInternal AddPathsConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPathsConfig_class_data_;
#else
extern const AddPathsConfigGlobalsTypeInternal AddPathsConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPathsState;
struct AddPathsStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPathsStateGlobalsTypeInternal AddPathsState_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPathsState_class_data_;
#else
extern const AddPathsStateGlobalsTypeInternal AddPathsState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPeerGroupRequest;
struct AddPeerGroupRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPeerGroupRequestGlobalsTypeInternal AddPeerGroupRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPeerGroupRequest_class_data_;
#else
extern const AddPeerGroupRequestGlobalsTypeInternal AddPeerGroupRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPeerRequest;
struct AddPeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPeerRequestGlobalsTypeInternal AddPeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPeerRequest_class_data_;
#else
extern const AddPeerRequestGlobalsTypeInternal AddPeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPolicyAssignmentRequest;
struct AddPolicyAssignmentRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPolicyAssignmentRequestGlobalsTypeInternal AddPolicyAssignmentRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPolicyAssignmentRequest_class_data_;
#else
extern const AddPolicyAssignmentRequestGlobalsTypeInternal AddPolicyAssignmentRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddPolicyRequest;
struct AddPolicyRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddPolicyRequestGlobalsTypeInternal AddPolicyRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddPolicyRequest_class_data_;
#else
extern const AddPolicyRequestGlobalsTypeInternal AddPolicyRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddRpkiRequest;
struct AddRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddRpkiRequestGlobalsTypeInternal AddRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddRpkiRequest_class_data_;
#else
extern const AddRpkiRequestGlobalsTypeInternal AddRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddStatementRequest;
struct AddStatementRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddStatementRequestGlobalsTypeInternal AddStatementRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddStatementRequest_class_data_;
#else
extern const AddStatementRequestGlobalsTypeInternal AddStatementRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AddVrfRequest;
struct AddVrfRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AddVrfRequestGlobalsTypeInternal AddVrfRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AddVrfRequest_class_data_;
#else
extern const AddVrfRequestGlobalsTypeInternal AddVrfRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AfiSafi;
struct AfiSafiGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AfiSafiGlobalsTypeInternal AfiSafi_globals_;
extern const ::google::protobuf::internal::ClassDataFull AfiSafi_class_data_;
#else
extern const AfiSafiGlobalsTypeInternal AfiSafi_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AfiSafiConfig;
struct AfiSafiConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AfiSafiConfigGlobalsTypeInternal AfiSafiConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull AfiSafiConfig_class_data_;
#else
extern const AfiSafiConfigGlobalsTypeInternal AfiSafiConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AfiSafiState;
struct AfiSafiStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AfiSafiStateGlobalsTypeInternal AfiSafiState_globals_;
extern const ::google::protobuf::internal::ClassDataFull AfiSafiState_class_data_;
#else
extern const AfiSafiStateGlobalsTypeInternal AfiSafiState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ApplyPolicy;
struct ApplyPolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ApplyPolicyGlobalsTypeInternal ApplyPolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull ApplyPolicy_class_data_;
#else
extern const ApplyPolicyGlobalsTypeInternal ApplyPolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AsPathLength;
struct AsPathLengthGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AsPathLengthGlobalsTypeInternal AsPathLength_globals_;
extern const ::google::protobuf::internal::ClassDataFull AsPathLength_class_data_;
#else
extern const AsPathLengthGlobalsTypeInternal AsPathLength_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class AsPrependAction;
struct AsPrependActionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AsPrependActionGlobalsTypeInternal AsPrependAction_globals_;
extern const ::google::protobuf::internal::ClassDataFull AsPrependAction_class_data_;
#else
extern const AsPrependActionGlobalsTypeInternal AsPrependAction_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CommunityAction;
struct CommunityActionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CommunityActionGlobalsTypeInternal CommunityAction_globals_;
extern const ::google::protobuf::internal::ClassDataFull CommunityAction_class_data_;
#else
extern const CommunityActionGlobalsTypeInternal CommunityAction_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Conditions;
struct ConditionsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ConditionsGlobalsTypeInternal Conditions_globals_;
extern const ::google::protobuf::internal::ClassDataFull Conditions_class_data_;
#else
extern const ConditionsGlobalsTypeInternal Conditions_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Confederation;
struct ConfederationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ConfederationGlobalsTypeInternal Confederation_globals_;
extern const ::google::protobuf::internal::ClassDataFull Confederation_class_data_;
#else
extern const ConfederationGlobalsTypeInternal Confederation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DefaultRouteDistance;
struct DefaultRouteDistanceGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DefaultRouteDistanceGlobalsTypeInternal DefaultRouteDistance_globals_;
extern const ::google::protobuf::internal::ClassDataFull DefaultRouteDistance_class_data_;
#else
extern const DefaultRouteDistanceGlobalsTypeInternal DefaultRouteDistance_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DefinedSet;
struct DefinedSetGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DefinedSetGlobalsTypeInternal DefinedSet_globals_;
extern const ::google::protobuf::internal::ClassDataFull DefinedSet_class_data_;
#else
extern const DefinedSetGlobalsTypeInternal DefinedSet_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteBmpRequest;
struct DeleteBmpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteBmpRequestGlobalsTypeInternal DeleteBmpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteBmpRequest_class_data_;
#else
extern const DeleteBmpRequestGlobalsTypeInternal DeleteBmpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteDefinedSetRequest;
struct DeleteDefinedSetRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteDefinedSetRequestGlobalsTypeInternal DeleteDefinedSetRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteDefinedSetRequest_class_data_;
#else
extern const DeleteDefinedSetRequestGlobalsTypeInternal DeleteDefinedSetRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteDynamicNeighborRequest;
struct DeleteDynamicNeighborRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteDynamicNeighborRequestGlobalsTypeInternal DeleteDynamicNeighborRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteDynamicNeighborRequest_class_data_;
#else
extern const DeleteDynamicNeighborRequestGlobalsTypeInternal DeleteDynamicNeighborRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeletePathRequest;
struct DeletePathRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeletePathRequestGlobalsTypeInternal DeletePathRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeletePathRequest_class_data_;
#else
extern const DeletePathRequestGlobalsTypeInternal DeletePathRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeletePeerGroupRequest;
struct DeletePeerGroupRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeletePeerGroupRequestGlobalsTypeInternal DeletePeerGroupRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeletePeerGroupRequest_class_data_;
#else
extern const DeletePeerGroupRequestGlobalsTypeInternal DeletePeerGroupRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeletePeerRequest;
struct DeletePeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeletePeerRequestGlobalsTypeInternal DeletePeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeletePeerRequest_class_data_;
#else
extern const DeletePeerRequestGlobalsTypeInternal DeletePeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeletePolicyAssignmentRequest;
struct DeletePolicyAssignmentRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeletePolicyAssignmentRequestGlobalsTypeInternal DeletePolicyAssignmentRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeletePolicyAssignmentRequest_class_data_;
#else
extern const DeletePolicyAssignmentRequestGlobalsTypeInternal DeletePolicyAssignmentRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeletePolicyRequest;
struct DeletePolicyRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeletePolicyRequestGlobalsTypeInternal DeletePolicyRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeletePolicyRequest_class_data_;
#else
extern const DeletePolicyRequestGlobalsTypeInternal DeletePolicyRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteRpkiRequest;
struct DeleteRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteRpkiRequestGlobalsTypeInternal DeleteRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteRpkiRequest_class_data_;
#else
extern const DeleteRpkiRequestGlobalsTypeInternal DeleteRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteStatementRequest;
struct DeleteStatementRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteStatementRequestGlobalsTypeInternal DeleteStatementRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteStatementRequest_class_data_;
#else
extern const DeleteStatementRequestGlobalsTypeInternal DeleteStatementRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteVrfRequest;
struct DeleteVrfRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteVrfRequestGlobalsTypeInternal DeleteVrfRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteVrfRequest_class_data_;
#else
extern const DeleteVrfRequestGlobalsTypeInternal DeleteVrfRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Destination;
struct DestinationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DestinationGlobalsTypeInternal Destination_globals_;
extern const ::google::protobuf::internal::ClassDataFull Destination_class_data_;
#else
extern const DestinationGlobalsTypeInternal Destination_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DisableMrtRequest;
struct DisableMrtRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DisableMrtRequestGlobalsTypeInternal DisableMrtRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DisableMrtRequest_class_data_;
#else
extern const DisableMrtRequestGlobalsTypeInternal DisableMrtRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DisablePeerRequest;
struct DisablePeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DisablePeerRequestGlobalsTypeInternal DisablePeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DisablePeerRequest_class_data_;
#else
extern const DisablePeerRequestGlobalsTypeInternal DisablePeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DisableRpkiRequest;
struct DisableRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DisableRpkiRequestGlobalsTypeInternal DisableRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DisableRpkiRequest_class_data_;
#else
extern const DisableRpkiRequestGlobalsTypeInternal DisableRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DynamicNeighbor;
struct DynamicNeighborGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DynamicNeighborGlobalsTypeInternal DynamicNeighbor_globals_;
extern const ::google::protobuf::internal::ClassDataFull DynamicNeighbor_class_data_;
#else
extern const DynamicNeighborGlobalsTypeInternal DynamicNeighbor_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Ebgp;
struct EbgpGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EbgpGlobalsTypeInternal Ebgp_globals_;
extern const ::google::protobuf::internal::ClassDataFull Ebgp_class_data_;
#else
extern const EbgpGlobalsTypeInternal Ebgp_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EbgpConfig;
struct EbgpConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EbgpConfigGlobalsTypeInternal EbgpConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull EbgpConfig_class_data_;
#else
extern const EbgpConfigGlobalsTypeInternal EbgpConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EbgpMultihop;
struct EbgpMultihopGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EbgpMultihopGlobalsTypeInternal EbgpMultihop_globals_;
extern const ::google::protobuf::internal::ClassDataFull EbgpMultihop_class_data_;
#else
extern const EbgpMultihopGlobalsTypeInternal EbgpMultihop_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EbgpState;
struct EbgpStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EbgpStateGlobalsTypeInternal EbgpState_globals_;
extern const ::google::protobuf::internal::ClassDataFull EbgpState_class_data_;
#else
extern const EbgpStateGlobalsTypeInternal EbgpState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EnableMrtRequest;
struct EnableMrtRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EnableMrtRequestGlobalsTypeInternal EnableMrtRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull EnableMrtRequest_class_data_;
#else
extern const EnableMrtRequestGlobalsTypeInternal EnableMrtRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EnablePeerRequest;
struct EnablePeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EnablePeerRequestGlobalsTypeInternal EnablePeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull EnablePeerRequest_class_data_;
#else
extern const EnablePeerRequestGlobalsTypeInternal EnablePeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EnableRpkiRequest;
struct EnableRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EnableRpkiRequestGlobalsTypeInternal EnableRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull EnableRpkiRequest_class_data_;
#else
extern const EnableRpkiRequestGlobalsTypeInternal EnableRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EnableZebraRequest;
struct EnableZebraRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EnableZebraRequestGlobalsTypeInternal EnableZebraRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull EnableZebraRequest_class_data_;
#else
extern const EnableZebraRequestGlobalsTypeInternal EnableZebraRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Family;
struct FamilyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FamilyGlobalsTypeInternal Family_globals_;
extern const ::google::protobuf::internal::ClassDataFull Family_class_data_;
#else
extern const FamilyGlobalsTypeInternal Family_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetBgpRequest;
struct GetBgpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetBgpRequestGlobalsTypeInternal GetBgpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetBgpRequest_class_data_;
#else
extern const GetBgpRequestGlobalsTypeInternal GetBgpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetBgpResponse;
struct GetBgpResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetBgpResponseGlobalsTypeInternal GetBgpResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetBgpResponse_class_data_;
#else
extern const GetBgpResponseGlobalsTypeInternal GetBgpResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetTableRequest;
struct GetTableRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetTableRequestGlobalsTypeInternal GetTableRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetTableRequest_class_data_;
#else
extern const GetTableRequestGlobalsTypeInternal GetTableRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetTableResponse;
struct GetTableResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetTableResponseGlobalsTypeInternal GetTableResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetTableResponse_class_data_;
#else
extern const GetTableResponseGlobalsTypeInternal GetTableResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Global;
struct GlobalGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GlobalGlobalsTypeInternal Global_globals_;
extern const ::google::protobuf::internal::ClassDataFull Global_class_data_;
#else
extern const GlobalGlobalsTypeInternal Global_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GracefulRestart;
struct GracefulRestartGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GracefulRestartGlobalsTypeInternal GracefulRestart_globals_;
extern const ::google::protobuf::internal::ClassDataFull GracefulRestart_class_data_;
#else
extern const GracefulRestartGlobalsTypeInternal GracefulRestart_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Ibgp;
struct IbgpGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IbgpGlobalsTypeInternal Ibgp_globals_;
extern const ::google::protobuf::internal::ClassDataFull Ibgp_class_data_;
#else
extern const IbgpGlobalsTypeInternal Ibgp_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IbgpConfig;
struct IbgpConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IbgpConfigGlobalsTypeInternal IbgpConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull IbgpConfig_class_data_;
#else
extern const IbgpConfigGlobalsTypeInternal IbgpConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IbgpState;
struct IbgpStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IbgpStateGlobalsTypeInternal IbgpState_globals_;
extern const ::google::protobuf::internal::ClassDataFull IbgpState_class_data_;
#else
extern const IbgpStateGlobalsTypeInternal IbgpState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListBmpRequest;
struct ListBmpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListBmpRequestGlobalsTypeInternal ListBmpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListBmpRequest_class_data_;
#else
extern const ListBmpRequestGlobalsTypeInternal ListBmpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListBmpResponse;
struct ListBmpResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListBmpResponseGlobalsTypeInternal ListBmpResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListBmpResponse_class_data_;
#else
extern const ListBmpResponseGlobalsTypeInternal ListBmpResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListBmpResponse_BmpStation;
struct ListBmpResponse_BmpStationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListBmpResponse_BmpStationGlobalsTypeInternal ListBmpResponse_BmpStation_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListBmpResponse_BmpStation_class_data_;
#else
extern const ListBmpResponse_BmpStationGlobalsTypeInternal ListBmpResponse_BmpStation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListBmpResponse_BmpStation_Conf;
struct ListBmpResponse_BmpStation_ConfGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListBmpResponse_BmpStation_ConfGlobalsTypeInternal ListBmpResponse_BmpStation_Conf_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListBmpResponse_BmpStation_Conf_class_data_;
#else
extern const ListBmpResponse_BmpStation_ConfGlobalsTypeInternal ListBmpResponse_BmpStation_Conf_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListBmpResponse_BmpStation_State;
struct ListBmpResponse_BmpStation_StateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListBmpResponse_BmpStation_StateGlobalsTypeInternal ListBmpResponse_BmpStation_State_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListBmpResponse_BmpStation_State_class_data_;
#else
extern const ListBmpResponse_BmpStation_StateGlobalsTypeInternal ListBmpResponse_BmpStation_State_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListDefinedSetRequest;
struct ListDefinedSetRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListDefinedSetRequestGlobalsTypeInternal ListDefinedSetRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListDefinedSetRequest_class_data_;
#else
extern const ListDefinedSetRequestGlobalsTypeInternal ListDefinedSetRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListDefinedSetResponse;
struct ListDefinedSetResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListDefinedSetResponseGlobalsTypeInternal ListDefinedSetResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListDefinedSetResponse_class_data_;
#else
extern const ListDefinedSetResponseGlobalsTypeInternal ListDefinedSetResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListDynamicNeighborRequest;
struct ListDynamicNeighborRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListDynamicNeighborRequestGlobalsTypeInternal ListDynamicNeighborRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListDynamicNeighborRequest_class_data_;
#else
extern const ListDynamicNeighborRequestGlobalsTypeInternal ListDynamicNeighborRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListDynamicNeighborResponse;
struct ListDynamicNeighborResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListDynamicNeighborResponseGlobalsTypeInternal ListDynamicNeighborResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListDynamicNeighborResponse_class_data_;
#else
extern const ListDynamicNeighborResponseGlobalsTypeInternal ListDynamicNeighborResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPathRequest;
struct ListPathRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPathRequestGlobalsTypeInternal ListPathRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPathRequest_class_data_;
#else
extern const ListPathRequestGlobalsTypeInternal ListPathRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPathResponse;
struct ListPathResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPathResponseGlobalsTypeInternal ListPathResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPathResponse_class_data_;
#else
extern const ListPathResponseGlobalsTypeInternal ListPathResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPeerGroupRequest;
struct ListPeerGroupRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPeerGroupRequestGlobalsTypeInternal ListPeerGroupRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPeerGroupRequest_class_data_;
#else
extern const ListPeerGroupRequestGlobalsTypeInternal ListPeerGroupRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPeerGroupResponse;
struct ListPeerGroupResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPeerGroupResponseGlobalsTypeInternal ListPeerGroupResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPeerGroupResponse_class_data_;
#else
extern const ListPeerGroupResponseGlobalsTypeInternal ListPeerGroupResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPeerRequest;
struct ListPeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPeerRequestGlobalsTypeInternal ListPeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPeerRequest_class_data_;
#else
extern const ListPeerRequestGlobalsTypeInternal ListPeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPeerResponse;
struct ListPeerResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPeerResponseGlobalsTypeInternal ListPeerResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPeerResponse_class_data_;
#else
extern const ListPeerResponseGlobalsTypeInternal ListPeerResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPolicyAssignmentRequest;
struct ListPolicyAssignmentRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPolicyAssignmentRequestGlobalsTypeInternal ListPolicyAssignmentRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPolicyAssignmentRequest_class_data_;
#else
extern const ListPolicyAssignmentRequestGlobalsTypeInternal ListPolicyAssignmentRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPolicyAssignmentResponse;
struct ListPolicyAssignmentResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPolicyAssignmentResponseGlobalsTypeInternal ListPolicyAssignmentResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPolicyAssignmentResponse_class_data_;
#else
extern const ListPolicyAssignmentResponseGlobalsTypeInternal ListPolicyAssignmentResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPolicyRequest;
struct ListPolicyRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPolicyRequestGlobalsTypeInternal ListPolicyRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPolicyRequest_class_data_;
#else
extern const ListPolicyRequestGlobalsTypeInternal ListPolicyRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListPolicyResponse;
struct ListPolicyResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListPolicyResponseGlobalsTypeInternal ListPolicyResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListPolicyResponse_class_data_;
#else
extern const ListPolicyResponseGlobalsTypeInternal ListPolicyResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListRpkiRequest;
struct ListRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListRpkiRequestGlobalsTypeInternal ListRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListRpkiRequest_class_data_;
#else
extern const ListRpkiRequestGlobalsTypeInternal ListRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListRpkiResponse;
struct ListRpkiResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListRpkiResponseGlobalsTypeInternal ListRpkiResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListRpkiResponse_class_data_;
#else
extern const ListRpkiResponseGlobalsTypeInternal ListRpkiResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListRpkiTableRequest;
struct ListRpkiTableRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListRpkiTableRequestGlobalsTypeInternal ListRpkiTableRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListRpkiTableRequest_class_data_;
#else
extern const ListRpkiTableRequestGlobalsTypeInternal ListRpkiTableRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListRpkiTableResponse;
struct ListRpkiTableResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListRpkiTableResponseGlobalsTypeInternal ListRpkiTableResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListRpkiTableResponse_class_data_;
#else
extern const ListRpkiTableResponseGlobalsTypeInternal ListRpkiTableResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListStatementRequest;
struct ListStatementRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListStatementRequestGlobalsTypeInternal ListStatementRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListStatementRequest_class_data_;
#else
extern const ListStatementRequestGlobalsTypeInternal ListStatementRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListStatementResponse;
struct ListStatementResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListStatementResponseGlobalsTypeInternal ListStatementResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListStatementResponse_class_data_;
#else
extern const ListStatementResponseGlobalsTypeInternal ListStatementResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListVrfRequest;
struct ListVrfRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListVrfRequestGlobalsTypeInternal ListVrfRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListVrfRequest_class_data_;
#else
extern const ListVrfRequestGlobalsTypeInternal ListVrfRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListVrfResponse;
struct ListVrfResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListVrfResponseGlobalsTypeInternal ListVrfResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListVrfResponse_class_data_;
#else
extern const ListVrfResponseGlobalsTypeInternal ListVrfResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LocalPrefAction;
struct LocalPrefActionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LocalPrefActionGlobalsTypeInternal LocalPrefAction_globals_;
extern const ::google::protobuf::internal::ClassDataFull LocalPrefAction_class_data_;
#else
extern const LocalPrefActionGlobalsTypeInternal LocalPrefAction_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LongLivedGracefulRestart;
struct LongLivedGracefulRestartGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LongLivedGracefulRestartGlobalsTypeInternal LongLivedGracefulRestart_globals_;
extern const ::google::protobuf::internal::ClassDataFull LongLivedGracefulRestart_class_data_;
#else
extern const LongLivedGracefulRestartGlobalsTypeInternal LongLivedGracefulRestart_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LongLivedGracefulRestartConfig;
struct LongLivedGracefulRestartConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LongLivedGracefulRestartConfigGlobalsTypeInternal LongLivedGracefulRestartConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull LongLivedGracefulRestartConfig_class_data_;
#else
extern const LongLivedGracefulRestartConfigGlobalsTypeInternal LongLivedGracefulRestartConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LongLivedGracefulRestartState;
struct LongLivedGracefulRestartStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LongLivedGracefulRestartStateGlobalsTypeInternal LongLivedGracefulRestartState_globals_;
extern const ::google::protobuf::internal::ClassDataFull LongLivedGracefulRestartState_class_data_;
#else
extern const LongLivedGracefulRestartStateGlobalsTypeInternal LongLivedGracefulRestartState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MatchSet;
struct MatchSetGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MatchSetGlobalsTypeInternal MatchSet_globals_;
extern const ::google::protobuf::internal::ClassDataFull MatchSet_class_data_;
#else
extern const MatchSetGlobalsTypeInternal MatchSet_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MedAction;
struct MedActionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MedActionGlobalsTypeInternal MedAction_globals_;
extern const ::google::protobuf::internal::ClassDataFull MedAction_class_data_;
#else
extern const MedActionGlobalsTypeInternal MedAction_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Message;
struct MessageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MessageGlobalsTypeInternal Message_globals_;
extern const ::google::protobuf::internal::ClassDataFull Message_class_data_;
#else
extern const MessageGlobalsTypeInternal Message_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Messages;
struct MessagesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MessagesGlobalsTypeInternal Messages_globals_;
extern const ::google::protobuf::internal::ClassDataFull Messages_class_data_;
#else
extern const MessagesGlobalsTypeInternal Messages_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MpGracefulRestart;
struct MpGracefulRestartGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MpGracefulRestartGlobalsTypeInternal MpGracefulRestart_globals_;
extern const ::google::protobuf::internal::ClassDataFull MpGracefulRestart_class_data_;
#else
extern const MpGracefulRestartGlobalsTypeInternal MpGracefulRestart_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MpGracefulRestartConfig;
struct MpGracefulRestartConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MpGracefulRestartConfigGlobalsTypeInternal MpGracefulRestartConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull MpGracefulRestartConfig_class_data_;
#else
extern const MpGracefulRestartConfigGlobalsTypeInternal MpGracefulRestartConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MpGracefulRestartState;
struct MpGracefulRestartStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MpGracefulRestartStateGlobalsTypeInternal MpGracefulRestartState_globals_;
extern const ::google::protobuf::internal::ClassDataFull MpGracefulRestartState_class_data_;
#else
extern const MpGracefulRestartStateGlobalsTypeInternal MpGracefulRestartState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class NexthopAction;
struct NexthopActionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern NexthopActionGlobalsTypeInternal NexthopAction_globals_;
extern const ::google::protobuf::internal::ClassDataFull NexthopAction_class_data_;
#else
extern const NexthopActionGlobalsTypeInternal NexthopAction_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Path;
struct PathGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PathGlobalsTypeInternal Path_globals_;
extern const ::google::protobuf::internal::ClassDataFull Path_class_data_;
#else
extern const PathGlobalsTypeInternal Path_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Peer;
struct PeerGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerGlobalsTypeInternal Peer_globals_;
extern const ::google::protobuf::internal::ClassDataFull Peer_class_data_;
#else
extern const PeerGlobalsTypeInternal Peer_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PeerConf;
struct PeerConfGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerConfGlobalsTypeInternal PeerConf_globals_;
extern const ::google::protobuf::internal::ClassDataFull PeerConf_class_data_;
#else
extern const PeerConfGlobalsTypeInternal PeerConf_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PeerGroup;
struct PeerGroupGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerGroupGlobalsTypeInternal PeerGroup_globals_;
extern const ::google::protobuf::internal::ClassDataFull PeerGroup_class_data_;
#else
extern const PeerGroupGlobalsTypeInternal PeerGroup_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PeerGroupConf;
struct PeerGroupConfGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerGroupConfGlobalsTypeInternal PeerGroupConf_globals_;
extern const ::google::protobuf::internal::ClassDataFull PeerGroupConf_class_data_;
#else
extern const PeerGroupConfGlobalsTypeInternal PeerGroupConf_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PeerGroupState;
struct PeerGroupStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerGroupStateGlobalsTypeInternal PeerGroupState_globals_;
extern const ::google::protobuf::internal::ClassDataFull PeerGroupState_class_data_;
#else
extern const PeerGroupStateGlobalsTypeInternal PeerGroupState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PeerState;
struct PeerStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PeerStateGlobalsTypeInternal PeerState_globals_;
extern const ::google::protobuf::internal::ClassDataFull PeerState_class_data_;
#else
extern const PeerStateGlobalsTypeInternal PeerState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Policy;
struct PolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PolicyGlobalsTypeInternal Policy_globals_;
extern const ::google::protobuf::internal::ClassDataFull Policy_class_data_;
#else
extern const PolicyGlobalsTypeInternal Policy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PolicyAssignment;
struct PolicyAssignmentGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PolicyAssignmentGlobalsTypeInternal PolicyAssignment_globals_;
extern const ::google::protobuf::internal::ClassDataFull PolicyAssignment_class_data_;
#else
extern const PolicyAssignmentGlobalsTypeInternal PolicyAssignment_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Prefix;
struct PrefixGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PrefixGlobalsTypeInternal Prefix_globals_;
extern const ::google::protobuf::internal::ClassDataFull Prefix_class_data_;
#else
extern const PrefixGlobalsTypeInternal Prefix_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PrefixLimit;
struct PrefixLimitGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PrefixLimitGlobalsTypeInternal PrefixLimit_globals_;
extern const ::google::protobuf::internal::ClassDataFull PrefixLimit_class_data_;
#else
extern const PrefixLimitGlobalsTypeInternal PrefixLimit_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Queues;
struct QueuesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern QueuesGlobalsTypeInternal Queues_globals_;
extern const ::google::protobuf::internal::ClassDataFull Queues_class_data_;
#else
extern const QueuesGlobalsTypeInternal Queues_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RPKIConf;
struct RPKIConfGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RPKIConfGlobalsTypeInternal RPKIConf_globals_;
extern const ::google::protobuf::internal::ClassDataFull RPKIConf_class_data_;
#else
extern const RPKIConfGlobalsTypeInternal RPKIConf_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RPKIState;
struct RPKIStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RPKIStateGlobalsTypeInternal RPKIState_globals_;
extern const ::google::protobuf::internal::ClassDataFull RPKIState_class_data_;
#else
extern const RPKIStateGlobalsTypeInternal RPKIState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ResetPeerRequest;
struct ResetPeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ResetPeerRequestGlobalsTypeInternal ResetPeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ResetPeerRequest_class_data_;
#else
extern const ResetPeerRequestGlobalsTypeInternal ResetPeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ResetRpkiRequest;
struct ResetRpkiRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ResetRpkiRequestGlobalsTypeInternal ResetRpkiRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ResetRpkiRequest_class_data_;
#else
extern const ResetRpkiRequestGlobalsTypeInternal ResetRpkiRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Roa;
struct RoaGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RoaGlobalsTypeInternal Roa_globals_;
extern const ::google::protobuf::internal::ClassDataFull Roa_class_data_;
#else
extern const RoaGlobalsTypeInternal Roa_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteReflector;
struct RouteReflectorGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteReflectorGlobalsTypeInternal RouteReflector_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteReflector_class_data_;
#else
extern const RouteReflectorGlobalsTypeInternal RouteReflector_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteSelectionOptions;
struct RouteSelectionOptionsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteSelectionOptionsGlobalsTypeInternal RouteSelectionOptions_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteSelectionOptions_class_data_;
#else
extern const RouteSelectionOptionsGlobalsTypeInternal RouteSelectionOptions_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteSelectionOptionsConfig;
struct RouteSelectionOptionsConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteSelectionOptionsConfigGlobalsTypeInternal RouteSelectionOptionsConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteSelectionOptionsConfig_class_data_;
#else
extern const RouteSelectionOptionsConfigGlobalsTypeInternal RouteSelectionOptionsConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteSelectionOptionsState;
struct RouteSelectionOptionsStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteSelectionOptionsStateGlobalsTypeInternal RouteSelectionOptionsState_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteSelectionOptionsState_class_data_;
#else
extern const RouteSelectionOptionsStateGlobalsTypeInternal RouteSelectionOptionsState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteServer;
struct RouteServerGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteServerGlobalsTypeInternal RouteServer_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteServer_class_data_;
#else
extern const RouteServerGlobalsTypeInternal RouteServer_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteTargetMembership;
struct RouteTargetMembershipGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteTargetMembershipGlobalsTypeInternal RouteTargetMembership_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteTargetMembership_class_data_;
#else
extern const RouteTargetMembershipGlobalsTypeInternal RouteTargetMembership_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteTargetMembershipConfig;
struct RouteTargetMembershipConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteTargetMembershipConfigGlobalsTypeInternal RouteTargetMembershipConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteTargetMembershipConfig_class_data_;
#else
extern const RouteTargetMembershipConfigGlobalsTypeInternal RouteTargetMembershipConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RouteTargetMembershipState;
struct RouteTargetMembershipStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RouteTargetMembershipStateGlobalsTypeInternal RouteTargetMembershipState_globals_;
extern const ::google::protobuf::internal::ClassDataFull RouteTargetMembershipState_class_data_;
#else
extern const RouteTargetMembershipStateGlobalsTypeInternal RouteTargetMembershipState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RoutingPolicy;
struct RoutingPolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RoutingPolicyGlobalsTypeInternal RoutingPolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull RoutingPolicy_class_data_;
#else
extern const RoutingPolicyGlobalsTypeInternal RoutingPolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Rpki;
struct RpkiGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RpkiGlobalsTypeInternal Rpki_globals_;
extern const ::google::protobuf::internal::ClassDataFull Rpki_class_data_;
#else
extern const RpkiGlobalsTypeInternal Rpki_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SetLogLevelRequest;
struct SetLogLevelRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SetLogLevelRequestGlobalsTypeInternal SetLogLevelRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull SetLogLevelRequest_class_data_;
#else
extern const SetLogLevelRequestGlobalsTypeInternal SetLogLevelRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SetPoliciesRequest;
struct SetPoliciesRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SetPoliciesRequestGlobalsTypeInternal SetPoliciesRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull SetPoliciesRequest_class_data_;
#else
extern const SetPoliciesRequestGlobalsTypeInternal SetPoliciesRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SetPolicyAssignmentRequest;
struct SetPolicyAssignmentRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SetPolicyAssignmentRequestGlobalsTypeInternal SetPolicyAssignmentRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull SetPolicyAssignmentRequest_class_data_;
#else
extern const SetPolicyAssignmentRequestGlobalsTypeInternal SetPolicyAssignmentRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ShutdownPeerRequest;
struct ShutdownPeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ShutdownPeerRequestGlobalsTypeInternal ShutdownPeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ShutdownPeerRequest_class_data_;
#else
extern const ShutdownPeerRequestGlobalsTypeInternal ShutdownPeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StartBgpRequest;
struct StartBgpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StartBgpRequestGlobalsTypeInternal StartBgpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull StartBgpRequest_class_data_;
#else
extern const StartBgpRequestGlobalsTypeInternal StartBgpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Statement;
struct StatementGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StatementGlobalsTypeInternal Statement_globals_;
extern const ::google::protobuf::internal::ClassDataFull Statement_class_data_;
#else
extern const StatementGlobalsTypeInternal Statement_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StopBgpRequest;
struct StopBgpRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StopBgpRequestGlobalsTypeInternal StopBgpRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull StopBgpRequest_class_data_;
#else
extern const StopBgpRequestGlobalsTypeInternal StopBgpRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TableLookupPrefix;
struct TableLookupPrefixGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TableLookupPrefixGlobalsTypeInternal TableLookupPrefix_globals_;
extern const ::google::protobuf::internal::ClassDataFull TableLookupPrefix_class_data_;
#else
extern const TableLookupPrefixGlobalsTypeInternal TableLookupPrefix_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Timers;
struct TimersGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TimersGlobalsTypeInternal Timers_globals_;
extern const ::google::protobuf::internal::ClassDataFull Timers_class_data_;
#else
extern const TimersGlobalsTypeInternal Timers_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TimersConfig;
struct TimersConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TimersConfigGlobalsTypeInternal TimersConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull TimersConfig_class_data_;
#else
extern const TimersConfigGlobalsTypeInternal TimersConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TimersState;
struct TimersStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TimersStateGlobalsTypeInternal TimersState_globals_;
extern const ::google::protobuf::internal::ClassDataFull TimersState_class_data_;
#else
extern const TimersStateGlobalsTypeInternal TimersState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Transport;
struct TransportGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TransportGlobalsTypeInternal Transport_globals_;
extern const ::google::protobuf::internal::ClassDataFull Transport_class_data_;
#else
extern const TransportGlobalsTypeInternal Transport_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TtlSecurity;
struct TtlSecurityGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TtlSecurityGlobalsTypeInternal TtlSecurity_globals_;
extern const ::google::protobuf::internal::ClassDataFull TtlSecurity_class_data_;
#else
extern const TtlSecurityGlobalsTypeInternal TtlSecurity_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdatePeerGroupRequest;
struct UpdatePeerGroupRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdatePeerGroupRequestGlobalsTypeInternal UpdatePeerGroupRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdatePeerGroupRequest_class_data_;
#else
extern const UpdatePeerGroupRequestGlobalsTypeInternal UpdatePeerGroupRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdatePeerGroupResponse;
struct UpdatePeerGroupResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdatePeerGroupResponseGlobalsTypeInternal UpdatePeerGroupResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdatePeerGroupResponse_class_data_;
#else
extern const UpdatePeerGroupResponseGlobalsTypeInternal UpdatePeerGroupResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdatePeerRequest;
struct UpdatePeerRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdatePeerRequestGlobalsTypeInternal UpdatePeerRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdatePeerRequest_class_data_;
#else
extern const UpdatePeerRequestGlobalsTypeInternal UpdatePeerRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdatePeerResponse;
struct UpdatePeerResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdatePeerResponseGlobalsTypeInternal UpdatePeerResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdatePeerResponse_class_data_;
#else
extern const UpdatePeerResponseGlobalsTypeInternal UpdatePeerResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UseMultiplePaths;
struct UseMultiplePathsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UseMultiplePathsGlobalsTypeInternal UseMultiplePaths_globals_;
extern const ::google::protobuf::internal::ClassDataFull UseMultiplePaths_class_data_;
#else
extern const UseMultiplePathsGlobalsTypeInternal UseMultiplePaths_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UseMultiplePathsConfig;
struct UseMultiplePathsConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UseMultiplePathsConfigGlobalsTypeInternal UseMultiplePathsConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull UseMultiplePathsConfig_class_data_;
#else
extern const UseMultiplePathsConfigGlobalsTypeInternal UseMultiplePathsConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UseMultiplePathsState;
struct UseMultiplePathsStateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UseMultiplePathsStateGlobalsTypeInternal UseMultiplePathsState_globals_;
extern const ::google::protobuf::internal::ClassDataFull UseMultiplePathsState_class_data_;
#else
extern const UseMultiplePathsStateGlobalsTypeInternal UseMultiplePathsState_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Validation;
struct ValidationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ValidationGlobalsTypeInternal Validation_globals_;
extern const ::google::protobuf::internal::ClassDataFull Validation_class_data_;
#else
extern const ValidationGlobalsTypeInternal Validation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Vrf;
struct VrfGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern VrfGlobalsTypeInternal Vrf_globals_;
extern const ::google::protobuf::internal::ClassDataFull Vrf_class_data_;
#else
extern const VrfGlobalsTypeInternal Vrf_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventRequest;
struct WatchEventRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventRequestGlobalsTypeInternal WatchEventRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventRequest_class_data_;
#else
extern const WatchEventRequestGlobalsTypeInternal WatchEventRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventRequest_Peer;
struct WatchEventRequest_PeerGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventRequest_PeerGlobalsTypeInternal WatchEventRequest_Peer_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventRequest_Peer_class_data_;
#else
extern const WatchEventRequest_PeerGlobalsTypeInternal WatchEventRequest_Peer_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventRequest_Table;
struct WatchEventRequest_TableGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventRequest_TableGlobalsTypeInternal WatchEventRequest_Table_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventRequest_Table_class_data_;
#else
extern const WatchEventRequest_TableGlobalsTypeInternal WatchEventRequest_Table_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventRequest_Table_Filter;
struct WatchEventRequest_Table_FilterGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventRequest_Table_FilterGlobalsTypeInternal WatchEventRequest_Table_Filter_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventRequest_Table_Filter_class_data_;
#else
extern const WatchEventRequest_Table_FilterGlobalsTypeInternal WatchEventRequest_Table_Filter_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventResponse;
struct WatchEventResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventResponseGlobalsTypeInternal WatchEventResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventResponse_class_data_;
#else
extern const WatchEventResponseGlobalsTypeInternal WatchEventResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventResponse_PeerEvent;
struct WatchEventResponse_PeerEventGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventResponse_PeerEventGlobalsTypeInternal WatchEventResponse_PeerEvent_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventResponse_PeerEvent_class_data_;
#else
extern const WatchEventResponse_PeerEventGlobalsTypeInternal WatchEventResponse_PeerEvent_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WatchEventResponse_TableEvent;
struct WatchEventResponse_TableEventGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WatchEventResponse_TableEventGlobalsTypeInternal WatchEventResponse_TableEvent_globals_;
extern const ::google::protobuf::internal::ClassDataFull WatchEventResponse_TableEvent_class_data_;
#else
extern const WatchEventResponse_TableEventGlobalsTypeInternal WatchEventResponse_TableEvent_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace apipb
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::apipb::AddBmpRequest_MonitoringPolicy_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::AddBmpRequest_MonitoringPolicy>;
template <>
internal::EnumTraitsT<::apipb::AsPathLength_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::AsPathLength_Type>;
template <>
internal::EnumTraitsT<::apipb::CommunityAction_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::CommunityAction_Type>;
template <>
internal::EnumTraitsT<::apipb::Conditions_RouteType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::Conditions_RouteType>;
template <>
internal::EnumTraitsT<::apipb::DefinedType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::DefinedType>;
template <>
internal::EnumTraitsT<::apipb::EnableMrtRequest_DumpType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::EnableMrtRequest_DumpType>;
template <>
internal::EnumTraitsT<::apipb::Family_Afi_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::Family_Afi>;
template <>
internal::EnumTraitsT<::apipb::Family_Safi_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::Family_Safi>;
template <>
internal::EnumTraitsT<::apipb::ListPathRequest_SortType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::ListPathRequest_SortType>;
template <>
internal::EnumTraitsT<::apipb::MatchSet_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::MatchSet_Type>;
template <>
internal::EnumTraitsT<::apipb::MedAction_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::MedAction_Type>;
template <>
internal::EnumTraitsT<::apipb::PeerState_AdminState_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::PeerState_AdminState>;
template <>
internal::EnumTraitsT<::apipb::PeerState_SessionState_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::PeerState_SessionState>;
template <>
internal::EnumTraitsT<::apipb::PeerType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::PeerType>;
template <>
internal::EnumTraitsT<::apipb::PolicyDirection_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::PolicyDirection>;
template <>
internal::EnumTraitsT<::apipb::RemovePrivate_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::RemovePrivate>;
template <>
internal::EnumTraitsT<::apipb::ResetPeerRequest_SoftResetDirection_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::ResetPeerRequest_SoftResetDirection>;
template <>
internal::EnumTraitsT<::apipb::RouteAction_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::RouteAction>;
template <>
internal::EnumTraitsT<::apipb::SetLogLevelRequest_Level_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::SetLogLevelRequest_Level>;
template <>
internal::EnumTraitsT<::apipb::TableLookupPrefix_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::TableLookupPrefix_Type>;
template <>
internal::EnumTraitsT<::apipb::TableType_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::TableType>;
template <>
internal::EnumTraitsT<::apipb::Validation_Reason_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::Validation_Reason>;
template <>
internal::EnumTraitsT<::apipb::Validation_State_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::Validation_State>;
template <>
internal::EnumTraitsT<::apipb::WatchEventRequest_Table_Filter_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::WatchEventRequest_Table_Filter_Type>;
template <>
internal::EnumTraitsT<::apipb::WatchEventResponse_PeerEvent_Type_internal_data_>
    internal::EnumTraitsImpl::value<::apipb::WatchEventResponse_PeerEvent_Type>;
}  // namespace protobuf
}  // namespace google

namespace apipb {
enum WatchEventRequest_Table_Filter_Type : int {
  WatchEventRequest_Table_Filter_Type_BEST = 0,
  WatchEventRequest_Table_Filter_Type_ADJIN = 1,
  WatchEventRequest_Table_Filter_Type_POST_POLICY = 2,
  WatchEventRequest_Table_Filter_Type_WatchEventRequest_Table_Filter_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  WatchEventRequest_Table_Filter_Type_WatchEventRequest_Table_Filter_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t WatchEventRequest_Table_Filter_Type_internal_data_[];
inline constexpr WatchEventRequest_Table_Filter_Type WatchEventRequest_Table_Filter_Type_Type_MIN =
    static_cast<WatchEventRequest_Table_Filter_Type>(0);
inline constexpr WatchEventRequest_Table_Filter_Type WatchEventRequest_Table_Filter_Type_Type_MAX =
    static_cast<WatchEventRequest_Table_Filter_Type>(2);
[[nodiscard]] inline bool WatchEventRequest_Table_Filter_Type_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int WatchEventRequest_Table_Filter_Type_Type_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
WatchEventRequest_Table_Filter_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(WatchEventRequest_Table_Filter_Type) {
  return WatchEventRequest_Table_Filter_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& WatchEventRequest_Table_Filter_Type_Name(T value) {
  static_assert(::std::is_same<T, WatchEventRequest_Table_Filter_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return WatchEventRequest_Table_Filter_Type_Name(static_cast<WatchEventRequest_Table_Filter_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& WatchEventRequest_Table_Filter_Type_Name(WatchEventRequest_Table_Filter_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<WatchEventRequest_Table_Filter_Type_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool WatchEventRequest_Table_Filter_Type_Parse(
    ::absl::string_view name, WatchEventRequest_Table_Filter_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<WatchEventRequest_Table_Filter_Type>(WatchEventRequest_Table_Filter_Type_descriptor(), name,
                                           value);
}
enum WatchEventResponse_PeerEvent_Type : int {
  WatchEventResponse_PeerEvent_Type_UNKNOWN = 0,
  WatchEventResponse_PeerEvent_Type_INIT = 1,
  WatchEventResponse_PeerEvent_Type_END_OF_INIT = 2,
  WatchEventResponse_PeerEvent_Type_STATE = 3,
  WatchEventResponse_PeerEvent_Type_WatchEventResponse_PeerEvent_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  WatchEventResponse_PeerEvent_Type_WatchEventResponse_PeerEvent_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t WatchEventResponse_PeerEvent_Type_internal_data_[];
inline constexpr WatchEventResponse_PeerEvent_Type WatchEventResponse_PeerEvent_Type_Type_MIN =
    static_cast<WatchEventResponse_PeerEvent_Type>(0);
inline constexpr WatchEventResponse_PeerEvent_Type WatchEventResponse_PeerEvent_Type_Type_MAX =
    static_cast<WatchEventResponse_PeerEvent_Type>(3);
[[nodiscard]] inline bool WatchEventResponse_PeerEvent_Type_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int WatchEventResponse_PeerEvent_Type_Type_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
WatchEventResponse_PeerEvent_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(WatchEventResponse_PeerEvent_Type) {
  return WatchEventResponse_PeerEvent_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& WatchEventResponse_PeerEvent_Type_Name(T value) {
  static_assert(::std::is_same<T, WatchEventResponse_PeerEvent_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return WatchEventResponse_PeerEvent_Type_Name(static_cast<WatchEventResponse_PeerEvent_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& WatchEventResponse_PeerEvent_Type_Name(WatchEventResponse_PeerEvent_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<WatchEventResponse_PeerEvent_Type_descriptor, 0, 3>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool WatchEventResponse_PeerEvent_Type_Parse(
    ::absl::string_view name, WatchEventResponse_PeerEvent_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<WatchEventResponse_PeerEvent_Type>(WatchEventResponse_PeerEvent_Type_descriptor(), name,
                                           value);
}
enum ResetPeerRequest_SoftResetDirection : int {
  ResetPeerRequest_SoftResetDirection_IN = 0,
  ResetPeerRequest_SoftResetDirection_OUT = 1,
  ResetPeerRequest_SoftResetDirection_BOTH = 2,
  ResetPeerRequest_SoftResetDirection_ResetPeerRequest_SoftResetDirection_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  ResetPeerRequest_SoftResetDirection_ResetPeerRequest_SoftResetDirection_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t ResetPeerRequest_SoftResetDirection_internal_data_[];
inline constexpr ResetPeerRequest_SoftResetDirection ResetPeerRequest_SoftResetDirection_SoftResetDirection_MIN =
    static_cast<ResetPeerRequest_SoftResetDirection>(0);
inline constexpr ResetPeerRequest_SoftResetDirection ResetPeerRequest_SoftResetDirection_SoftResetDirection_MAX =
    static_cast<ResetPeerRequest_SoftResetDirection>(2);
[[nodiscard]] inline bool ResetPeerRequest_SoftResetDirection_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int ResetPeerRequest_SoftResetDirection_SoftResetDirection_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ResetPeerRequest_SoftResetDirection_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(ResetPeerRequest_SoftResetDirection) {
  return ResetPeerRequest_SoftResetDirection_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& ResetPeerRequest_SoftResetDirection_Name(T value) {
  static_assert(::std::is_same<T, ResetPeerRequest_SoftResetDirection>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to SoftResetDirection_Name().");
  return ResetPeerRequest_SoftResetDirection_Name(static_cast<ResetPeerRequest_SoftResetDirection>(value));
}
template <>
[[nodiscard]] inline const ::std::string& ResetPeerRequest_SoftResetDirection_Name(ResetPeerRequest_SoftResetDirection value) {
  return ::google::protobuf::internal::NameOfDenseEnum<ResetPeerRequest_SoftResetDirection_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool ResetPeerRequest_SoftResetDirection_Parse(
    ::absl::string_view name, ResetPeerRequest_SoftResetDirection* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<ResetPeerRequest_SoftResetDirection>(ResetPeerRequest_SoftResetDirection_descriptor(), name,
                                           value);
}
enum TableLookupPrefix_Type : int {
  TableLookupPrefix_Type_EXACT = 0,
  TableLookupPrefix_Type_LONGER = 1,
  TableLookupPrefix_Type_SHORTER = 2,
  TableLookupPrefix_Type_TableLookupPrefix_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  TableLookupPrefix_Type_TableLookupPrefix_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t TableLookupPrefix_Type_internal_data_[];
inline constexpr TableLookupPrefix_Type TableLookupPrefix_Type_Type_MIN =
    static_cast<TableLookupPrefix_Type>(0);
inline constexpr TableLookupPrefix_Type TableLookupPrefix_Type_Type_MAX =
    static_cast<TableLookupPrefix_Type>(2);
[[nodiscard]] inline bool TableLookupPrefix_Type_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int TableLookupPrefix_Type_Type_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
TableLookupPrefix_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(TableLookupPrefix_Type) {
  return TableLookupPrefix_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& TableLookupPrefix_Type_Name(T value) {
  static_assert(::std::is_same<T, TableLookupPrefix_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return TableLookupPrefix_Type_Name(static_cast<TableLookupPrefix_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& TableLookupPrefix_Type_Name(TableLookupPrefix_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<TableLookupPrefix_Type_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool TableLookupPrefix_Type_Parse(
    ::absl::string_view name, TableLookupPrefix_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<TableLookupPrefix_Type>(TableLookupPrefix_Type_descriptor(), name,
                                           value);
}
enum ListPathRequest_SortType : int {
  ListPathRequest_SortType_NONE = 0,
  ListPathRequest_SortType_PREFIX = 1,
  ListPathRequest_SortType_ListPathRequest_SortType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  ListPathRequest_SortType_ListPathRequest_SortType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t ListPathRequest_SortType_internal_data_[];
inline constexpr ListPathRequest_SortType ListPathRequest_SortType_SortType_MIN =
    static_cast<ListPathRequest_SortType>(0);
inline constexpr ListPathRequest_SortType ListPathRequest_SortType_SortType_MAX =
    static_cast<ListPathRequest_SortType>(1);
[[nodiscard]] inline bool ListPathRequest_SortType_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int ListPathRequest_SortType_SortType_ARRAYSIZE = 1 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ListPathRequest_SortType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(ListPathRequest_SortType) {
  return ListPathRequest_SortType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& ListPathRequest_SortType_Name(T value) {
  static_assert(::std::is_same<T, ListPathRequest_SortType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to SortType_Name().");
  return ListPathRequest_SortType_Name(static_cast<ListPathRequest_SortType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& ListPathRequest_SortType_Name(ListPathRequest_SortType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<ListPathRequest_SortType_descriptor, 0, 1>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool ListPathRequest_SortType_Parse(
    ::absl::string_view name, ListPathRequest_SortType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<ListPathRequest_SortType>(ListPathRequest_SortType_descriptor(), name,
                                           value);
}
enum EnableMrtRequest_DumpType : int {
  EnableMrtRequest_DumpType_UPDATES = 0,
  EnableMrtRequest_DumpType_TABLE = 1,
  EnableMrtRequest_DumpType_EnableMrtRequest_DumpType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  EnableMrtRequest_DumpType_EnableMrtRequest_DumpType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t EnableMrtRequest_DumpType_internal_data_[];
inline constexpr EnableMrtRequest_DumpType EnableMrtRequest_DumpType_DumpType_MIN =
    static_cast<EnableMrtRequest_DumpType>(0);
inline constexpr EnableMrtRequest_DumpType EnableMrtRequest_DumpType_DumpType_MAX =
    static_cast<EnableMrtRequest_DumpType>(1);
[[nodiscard]] inline bool EnableMrtRequest_DumpType_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int EnableMrtRequest_DumpType_DumpType_ARRAYSIZE = 1 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
EnableMrtRequest_DumpType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(EnableMrtRequest_DumpType) {
  return EnableMrtRequest_DumpType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& EnableMrtRequest_DumpType_Name(T value) {
  static_assert(::std::is_same<T, EnableMrtRequest_DumpType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to DumpType_Name().");
  return EnableMrtRequest_DumpType_Name(static_cast<EnableMrtRequest_DumpType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& EnableMrtRequest_DumpType_Name(EnableMrtRequest_DumpType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<EnableMrtRequest_DumpType_descriptor, 0, 1>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool EnableMrtRequest_DumpType_Parse(
    ::absl::string_view name, EnableMrtRequest_DumpType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<EnableMrtRequest_DumpType>(EnableMrtRequest_DumpType_descriptor(), name,
                                           value);
}
enum AddBmpRequest_MonitoringPolicy : int {
  AddBmpRequest_MonitoringPolicy_PRE = 0,
  AddBmpRequest_MonitoringPolicy_POST = 1,
  AddBmpRequest_MonitoringPolicy_BOTH = 2,
  AddBmpRequest_MonitoringPolicy_LOCAL = 3,
  AddBmpRequest_MonitoringPolicy_ALL = 4,
  AddBmpRequest_MonitoringPolicy_AddBmpRequest_MonitoringPolicy_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  AddBmpRequest_MonitoringPolicy_AddBmpRequest_MonitoringPolicy_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t AddBmpRequest_MonitoringPolicy_internal_data_[];
inline constexpr AddBmpRequest_MonitoringPolicy AddBmpRequest_MonitoringPolicy_MonitoringPolicy_MIN =
    static_cast<AddBmpRequest_MonitoringPolicy>(0);
inline constexpr AddBmpRequest_MonitoringPolicy AddBmpRequest_MonitoringPolicy_MonitoringPolicy_MAX =
    static_cast<AddBmpRequest_MonitoringPolicy>(4);
[[nodiscard]] inline bool AddBmpRequest_MonitoringPolicy_IsValid(int value) {
  return 0 <= value && value <= 4;
}
inline constexpr int AddBmpRequest_MonitoringPolicy_MonitoringPolicy_ARRAYSIZE = 4 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AddBmpRequest_MonitoringPolicy_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(AddBmpRequest_MonitoringPolicy) {
  return AddBmpRequest_MonitoringPolicy_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& AddBmpRequest_MonitoringPolicy_Name(T value) {
  static_assert(::std::is_same<T, AddBmpRequest_MonitoringPolicy>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to MonitoringPolicy_Name().");
  return AddBmpRequest_MonitoringPolicy_Name(static_cast<AddBmpRequest_MonitoringPolicy>(value));
}
template <>
[[nodiscard]] inline const ::std::string& AddBmpRequest_MonitoringPolicy_Name(AddBmpRequest_MonitoringPolicy value) {
  return ::google::protobuf::internal::NameOfDenseEnum<AddBmpRequest_MonitoringPolicy_descriptor, 0, 4>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool AddBmpRequest_MonitoringPolicy_Parse(
    ::absl::string_view name, AddBmpRequest_MonitoringPolicy* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<AddBmpRequest_MonitoringPolicy>(AddBmpRequest_MonitoringPolicy_descriptor(), name,
                                           value);
}
enum Family_Afi : int {
  Family_Afi_AFI_UNKNOWN = 0,
  Family_Afi_AFI_IP = 1,
  Family_Afi_AFI_IP6 = 2,
  Family_Afi_AFI_L2VPN = 25,
  Family_Afi_AFI_LS = 16388,
  Family_Afi_AFI_OPAQUE = 16397,
  Family_Afi_Family_Afi_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Family_Afi_Family_Afi_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Family_Afi_internal_data_[];
inline constexpr Family_Afi Family_Afi_Afi_MIN =
    static_cast<Family_Afi>(0);
inline constexpr Family_Afi Family_Afi_Afi_MAX =
    static_cast<Family_Afi>(16397);
[[nodiscard]] inline bool Family_Afi_IsValid(int value) {
  return ::google::protobuf::internal::ValidateEnum(value, Family_Afi_internal_data_);
}
inline constexpr int Family_Afi_Afi_ARRAYSIZE = 16397 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Family_Afi_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Family_Afi) {
  return Family_Afi_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Family_Afi_Name(T value) {
  static_assert(::std::is_same<T, Family_Afi>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Afi_Name().");
  return ::google::protobuf::internal::NameOfEnum(Family_Afi_descriptor(), value);
}
[[nodiscard]] inline bool Family_Afi_Parse(
    ::absl::string_view name, Family_Afi* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Family_Afi>(Family_Afi_descriptor(), name,
                                           value);
}
enum Family_Safi : int {
  Family_Safi_SAFI_UNKNOWN = 0,
  Family_Safi_SAFI_UNICAST = 1,
  Family_Safi_SAFI_MULTICAST = 2,
  Family_Safi_SAFI_MPLS_LABEL = 4,
  Family_Safi_SAFI_ENCAPSULATION = 7,
  Family_Safi_SAFI_VPLS = 65,
  Family_Safi_SAFI_EVPN = 70,
  Family_Safi_SAFI_LS = 71,
  Family_Safi_SAFI_SR_POLICY = 73,
  Family_Safi_SAFI_MUP = 85,
  Family_Safi_SAFI_MPLS_VPN = 128,
  Family_Safi_SAFI_MPLS_VPN_MULTICAST = 129,
  Family_Safi_SAFI_ROUTE_TARGET_CONSTRAINTS = 132,
  Family_Safi_SAFI_FLOW_SPEC_UNICAST = 133,
  Family_Safi_SAFI_FLOW_SPEC_VPN = 134,
  Family_Safi_SAFI_KEY_VALUE = 241,
  Family_Safi_Family_Safi_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Family_Safi_Family_Safi_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Family_Safi_internal_data_[];
inline constexpr Family_Safi Family_Safi_Safi_MIN =
    static_cast<Family_Safi>(0);
inline constexpr Family_Safi Family_Safi_Safi_MAX =
    static_cast<Family_Safi>(241);
[[nodiscard]] inline bool Family_Safi_IsValid(int value) {
  return ::google::protobuf::internal::ValidateEnum(value, Family_Safi_internal_data_);
}
inline constexpr int Family_Safi_Safi_ARRAYSIZE = 241 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Family_Safi_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Family_Safi) {
  return Family_Safi_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Family_Safi_Name(T value) {
  static_assert(::std::is_same<T, Family_Safi>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Safi_Name().");
  return ::google::protobuf::internal::NameOfEnum(Family_Safi_descriptor(), value);
}
[[nodiscard]] inline bool Family_Safi_Parse(
    ::absl::string_view name, Family_Safi* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Family_Safi>(Family_Safi_descriptor(), name,
                                           value);
}
enum Validation_State : int {
  Validation_State_STATE_NONE = 0,
  Validation_State_STATE_NOT_FOUND = 1,
  Validation_State_STATE_VALID = 2,
  Validation_State_STATE_INVALID = 3,
  Validation_State_Validation_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Validation_State_Validation_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Validation_State_internal_data_[];
inline constexpr Validation_State Validation_State_State_MIN =
    static_cast<Validation_State>(0);
inline constexpr Validation_State Validation_State_State_MAX =
    static_cast<Validation_State>(3);
[[nodiscard]] inline bool Validation_State_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int Validation_State_State_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Validation_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Validation_State) {
  return Validation_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Validation_State_Name(T value) {
  static_assert(::std::is_same<T, Validation_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return Validation_State_Name(static_cast<Validation_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Validation_State_Name(Validation_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Validation_State_descriptor, 0, 3>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Validation_State_Parse(
    ::absl::string_view name, Validation_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Validation_State>(Validation_State_descriptor(), name,
                                           value);
}
enum Validation_Reason : int {
  Validation_Reason_REASON_NONE = 0,
  Validation_Reason_REASON_ASN = 1,
  Validation_Reason_REASON_LENGTH = 2,
  Validation_Reason_Validation_Reason_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Validation_Reason_Validation_Reason_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Validation_Reason_internal_data_[];
inline constexpr Validation_Reason Validation_Reason_Reason_MIN =
    static_cast<Validation_Reason>(0);
inline constexpr Validation_Reason Validation_Reason_Reason_MAX =
    static_cast<Validation_Reason>(2);
[[nodiscard]] inline bool Validation_Reason_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int Validation_Reason_Reason_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Validation_Reason_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Validation_Reason) {
  return Validation_Reason_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Validation_Reason_Name(T value) {
  static_assert(::std::is_same<T, Validation_Reason>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Reason_Name().");
  return Validation_Reason_Name(static_cast<Validation_Reason>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Validation_Reason_Name(Validation_Reason value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Validation_Reason_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Validation_Reason_Parse(
    ::absl::string_view name, Validation_Reason* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Validation_Reason>(Validation_Reason_descriptor(), name,
                                           value);
}
enum PeerState_SessionState : int {
  PeerState_SessionState_UNKNOWN = 0,
  PeerState_SessionState_IDLE = 1,
  PeerState_SessionState_CONNECT = 2,
  PeerState_SessionState_ACTIVE = 3,
  PeerState_SessionState_OPENSENT = 4,
  PeerState_SessionState_OPENCONFIRM = 5,
  PeerState_SessionState_ESTABLISHED = 6,
  PeerState_SessionState_PeerState_SessionState_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  PeerState_SessionState_PeerState_SessionState_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t PeerState_SessionState_internal_data_[];
inline constexpr PeerState_SessionState PeerState_SessionState_SessionState_MIN =
    static_cast<PeerState_SessionState>(0);
inline constexpr PeerState_SessionState PeerState_SessionState_SessionState_MAX =
    static_cast<PeerState_SessionState>(6);
[[nodiscard]] inline bool PeerState_SessionState_IsValid(int value) {
  return 0 <= value && value <= 6;
}
inline constexpr int PeerState_SessionState_SessionState_ARRAYSIZE = 6 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
PeerState_SessionState_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(PeerState_SessionState) {
  return PeerState_SessionState_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& PeerState_SessionState_Name(T value) {
  static_assert(::std::is_same<T, PeerState_SessionState>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to SessionState_Name().");
  return PeerState_SessionState_Name(static_cast<PeerState_SessionState>(value));
}
template <>
[[nodiscard]] inline const ::std::string& PeerState_SessionState_Name(PeerState_SessionState value) {
  return ::google::protobuf::internal::NameOfDenseEnum<PeerState_SessionState_descriptor, 0, 6>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool PeerState_SessionState_Parse(
    ::absl::string_view name, PeerState_SessionState* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<PeerState_SessionState>(PeerState_SessionState_descriptor(), name,
                                           value);
}
enum PeerState_AdminState : int {
  PeerState_AdminState_UP = 0,
  PeerState_AdminState_DOWN = 1,
  PeerState_AdminState_PFX_CT = 2,
  PeerState_AdminState_PeerState_AdminState_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  PeerState_AdminState_PeerState_AdminState_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t PeerState_AdminState_internal_data_[];
inline constexpr PeerState_AdminState PeerState_AdminState_AdminState_MIN =
    static_cast<PeerState_AdminState>(0);
inline constexpr PeerState_AdminState PeerState_AdminState_AdminState_MAX =
    static_cast<PeerState_AdminState>(2);
[[nodiscard]] inline bool PeerState_AdminState_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int PeerState_AdminState_AdminState_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
PeerState_AdminState_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(PeerState_AdminState) {
  return PeerState_AdminState_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& PeerState_AdminState_Name(T value) {
  static_assert(::std::is_same<T, PeerState_AdminState>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to AdminState_Name().");
  return PeerState_AdminState_Name(static_cast<PeerState_AdminState>(value));
}
template <>
[[nodiscard]] inline const ::std::string& PeerState_AdminState_Name(PeerState_AdminState value) {
  return ::google::protobuf::internal::NameOfDenseEnum<PeerState_AdminState_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool PeerState_AdminState_Parse(
    ::absl::string_view name, PeerState_AdminState* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<PeerState_AdminState>(PeerState_AdminState_descriptor(), name,
                                           value);
}
enum MatchSet_Type : int {
  MatchSet_Type_ANY = 0,
  MatchSet_Type_ALL = 1,
  MatchSet_Type_INVERT = 2,
  MatchSet_Type_MatchSet_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  MatchSet_Type_MatchSet_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t MatchSet_Type_internal_data_[];
inline constexpr MatchSet_Type MatchSet_Type_Type_MIN =
    static_cast<MatchSet_Type>(0);
inline constexpr MatchSet_Type MatchSet_Type_Type_MAX =
    static_cast<MatchSet_Type>(2);
[[nodiscard]] inline bool MatchSet_Type_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int MatchSet_Type_Type_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
MatchSet_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(MatchSet_Type) {
  return MatchSet_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& MatchSet_Type_Name(T value) {
  static_assert(::std::is_same<T, MatchSet_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return MatchSet_Type_Name(static_cast<MatchSet_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& MatchSet_Type_Name(MatchSet_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<MatchSet_Type_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool MatchSet_Type_Parse(
    ::absl::string_view name, MatchSet_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<MatchSet_Type>(MatchSet_Type_descriptor(), name,
                                           value);
}
enum AsPathLength_Type : int {
  AsPathLength_Type_EQ = 0,
  AsPathLength_Type_GE = 1,
  AsPathLength_Type_LE = 2,
  AsPathLength_Type_AsPathLength_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  AsPathLength_Type_AsPathLength_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t AsPathLength_Type_internal_data_[];
inline constexpr AsPathLength_Type AsPathLength_Type_Type_MIN =
    static_cast<AsPathLength_Type>(0);
inline constexpr AsPathLength_Type AsPathLength_Type_Type_MAX =
    static_cast<AsPathLength_Type>(2);
[[nodiscard]] inline bool AsPathLength_Type_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int AsPathLength_Type_Type_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AsPathLength_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(AsPathLength_Type) {
  return AsPathLength_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& AsPathLength_Type_Name(T value) {
  static_assert(::std::is_same<T, AsPathLength_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return AsPathLength_Type_Name(static_cast<AsPathLength_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& AsPathLength_Type_Name(AsPathLength_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<AsPathLength_Type_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool AsPathLength_Type_Parse(
    ::absl::string_view name, AsPathLength_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<AsPathLength_Type>(AsPathLength_Type_descriptor(), name,
                                           value);
}
enum Conditions_RouteType : int {
  Conditions_RouteType_ROUTE_TYPE_NONE = 0,
  Conditions_RouteType_ROUTE_TYPE_INTERNAL = 1,
  Conditions_RouteType_ROUTE_TYPE_EXTERNAL = 2,
  Conditions_RouteType_ROUTE_TYPE_LOCAL = 3,
  Conditions_RouteType_Conditions_RouteType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Conditions_RouteType_Conditions_RouteType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Conditions_RouteType_internal_data_[];
inline constexpr Conditions_RouteType Conditions_RouteType_RouteType_MIN =
    static_cast<Conditions_RouteType>(0);
inline constexpr Conditions_RouteType Conditions_RouteType_RouteType_MAX =
    static_cast<Conditions_RouteType>(3);
[[nodiscard]] inline bool Conditions_RouteType_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int Conditions_RouteType_RouteType_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Conditions_RouteType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Conditions_RouteType) {
  return Conditions_RouteType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Conditions_RouteType_Name(T value) {
  static_assert(::std::is_same<T, Conditions_RouteType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to RouteType_Name().");
  return Conditions_RouteType_Name(static_cast<Conditions_RouteType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Conditions_RouteType_Name(Conditions_RouteType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Conditions_RouteType_descriptor, 0, 3>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Conditions_RouteType_Parse(
    ::absl::string_view name, Conditions_RouteType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Conditions_RouteType>(Conditions_RouteType_descriptor(), name,
                                           value);
}
enum CommunityAction_Type : int {
  CommunityAction_Type_ADD = 0,
  CommunityAction_Type_REMOVE = 1,
  CommunityAction_Type_REPLACE = 2,
  CommunityAction_Type_CommunityAction_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  CommunityAction_Type_CommunityAction_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t CommunityAction_Type_internal_data_[];
inline constexpr CommunityAction_Type CommunityAction_Type_Type_MIN =
    static_cast<CommunityAction_Type>(0);
inline constexpr CommunityAction_Type CommunityAction_Type_Type_MAX =
    static_cast<CommunityAction_Type>(2);
[[nodiscard]] inline bool CommunityAction_Type_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int CommunityAction_Type_Type_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
CommunityAction_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(CommunityAction_Type) {
  return CommunityAction_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& CommunityAction_Type_Name(T value) {
  static_assert(::std::is_same<T, CommunityAction_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return CommunityAction_Type_Name(static_cast<CommunityAction_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& CommunityAction_Type_Name(CommunityAction_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<CommunityAction_Type_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool CommunityAction_Type_Parse(
    ::absl::string_view name, CommunityAction_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<CommunityAction_Type>(CommunityAction_Type_descriptor(), name,
                                           value);
}
enum MedAction_Type : int {
  MedAction_Type_MOD = 0,
  MedAction_Type_REPLACE = 1,
  MedAction_Type_MedAction_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  MedAction_Type_MedAction_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t MedAction_Type_internal_data_[];
inline constexpr MedAction_Type MedAction_Type_Type_MIN =
    static_cast<MedAction_Type>(0);
inline constexpr MedAction_Type MedAction_Type_Type_MAX =
    static_cast<MedAction_Type>(1);
[[nodiscard]] inline bool MedAction_Type_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int MedAction_Type_Type_ARRAYSIZE = 1 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
MedAction_Type_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(MedAction_Type) {
  return MedAction_Type_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& MedAction_Type_Name(T value) {
  static_assert(::std::is_same<T, MedAction_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return MedAction_Type_Name(static_cast<MedAction_Type>(value));
}
template <>
[[nodiscard]] inline const ::std::string& MedAction_Type_Name(MedAction_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<MedAction_Type_descriptor, 0, 1>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool MedAction_Type_Parse(
    ::absl::string_view name, MedAction_Type* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<MedAction_Type>(MedAction_Type_descriptor(), name,
                                           value);
}
enum SetLogLevelRequest_Level : int {
  SetLogLevelRequest_Level_PANIC = 0,
  SetLogLevelRequest_Level_FATAL = 1,
  SetLogLevelRequest_Level_ERROR = 2,
  SetLogLevelRequest_Level_WARN = 3,
  SetLogLevelRequest_Level_INFO = 4,
  SetLogLevelRequest_Level_DEBUG = 5,
  SetLogLevelRequest_Level_TRACE = 6,
  SetLogLevelRequest_Level_SetLogLevelRequest_Level_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  SetLogLevelRequest_Level_SetLogLevelRequest_Level_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t SetLogLevelRequest_Level_internal_data_[];
inline constexpr SetLogLevelRequest_Level SetLogLevelRequest_Level_Level_MIN =
    static_cast<SetLogLevelRequest_Level>(0);
inline constexpr SetLogLevelRequest_Level SetLogLevelRequest_Level_Level_MAX =
    static_cast<SetLogLevelRequest_Level>(6);
[[nodiscard]] inline bool SetLogLevelRequest_Level_IsValid(int value) {
  return 0 <= value && value <= 6;
}
inline constexpr int SetLogLevelRequest_Level_Level_ARRAYSIZE = 6 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
SetLogLevelRequest_Level_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(SetLogLevelRequest_Level) {
  return SetLogLevelRequest_Level_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& SetLogLevelRequest_Level_Name(T value) {
  static_assert(::std::is_same<T, SetLogLevelRequest_Level>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Level_Name().");
  return SetLogLevelRequest_Level_Name(static_cast<SetLogLevelRequest_Level>(value));
}
template <>
[[nodiscard]] inline const ::std::string& SetLogLevelRequest_Level_Name(SetLogLevelRequest_Level value) {
  return ::google::protobuf::internal::NameOfDenseEnum<SetLogLevelRequest_Level_descriptor, 0, 6>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool SetLogLevelRequest_Level_Parse(
    ::absl::string_view name, SetLogLevelRequest_Level* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<SetLogLevelRequest_Level>(SetLogLevelRequest_Level_descriptor(), name,
                                           value);
}
enum TableType : int {
  GLOBAL = 0,
  LOCAL = 1,
  ADJ_IN = 2,
  ADJ_OUT = 3,
  VRF = 4,
  TableType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  TableType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t TableType_internal_data_[];
inline constexpr TableType TableType_MIN =
    static_cast<TableType>(0);
inline constexpr TableType TableType_MAX =
    static_cast<TableType>(4);
[[nodiscard]] inline bool TableType_IsValid(int value) {
  return 0 <= value && value <= 4;
}
inline constexpr int TableType_ARRAYSIZE = 4 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
TableType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(TableType) {
  return TableType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& TableType_Name(T value) {
  static_assert(::std::is_same<T, TableType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to TableType_Name().");
  return TableType_Name(static_cast<TableType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& TableType_Name(TableType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<TableType_descriptor, 0, 4>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool TableType_Parse(
    ::absl::string_view name, TableType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<TableType>(TableType_descriptor(), name,
                                           value);
}
enum PeerType : int {
  INTERNAL = 0,
  EXTERNAL = 1,
  PeerType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  PeerType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t PeerType_internal_data_[];
inline constexpr PeerType PeerType_MIN =
    static_cast<PeerType>(0);
inline constexpr PeerType PeerType_MAX =
    static_cast<PeerType>(1);
[[nodiscard]] inline bool PeerType_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int PeerType_ARRAYSIZE = 1 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
PeerType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(PeerType) {
  return PeerType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& PeerType_Name(T value) {
  static_assert(::std::is_same<T, PeerType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to PeerType_Name().");
  return PeerType_Name(static_cast<PeerType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& PeerType_Name(PeerType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<PeerType_descriptor, 0, 1>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool PeerType_Parse(
    ::absl::string_view name, PeerType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<PeerType>(PeerType_descriptor(), name,
                                           value);
}
enum RemovePrivate : int {
  REMOVE_NONE = 0,
  REMOVE_ALL = 1,
  REPLACE = 2,
  RemovePrivate_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  RemovePrivate_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t RemovePrivate_internal_data_[];
inline constexpr RemovePrivate RemovePrivate_MIN =
    static_cast<RemovePrivate>(0);
inline constexpr RemovePrivate RemovePrivate_MAX =
    static_cast<RemovePrivate>(2);
[[nodiscard]] inline bool RemovePrivate_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int RemovePrivate_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
RemovePrivate_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(RemovePrivate) {
  return RemovePrivate_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& RemovePrivate_Name(T value) {
  static_assert(::std::is_same<T, RemovePrivate>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to RemovePrivate_Name().");
  return RemovePrivate_Name(static_cast<RemovePrivate>(value));
}
template <>
[[nodiscard]] inline const ::std::string& RemovePrivate_Name(RemovePrivate value) {
  return ::google::protobuf::internal::NameOfDenseEnum<RemovePrivate_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool RemovePrivate_Parse(
    ::absl::string_view name, RemovePrivate* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<RemovePrivate>(RemovePrivate_descriptor(), name,
                                           value);
}
enum DefinedType : int {
  PREFIX = 0,
  NEIGHBOR = 1,
  TAG = 2,
  AS_PATH = 3,
  COMMUNITY = 4,
  EXT_COMMUNITY = 5,
  LARGE_COMMUNITY = 6,
  NEXT_HOP = 7,
  DefinedType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  DefinedType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t DefinedType_internal_data_[];
inline constexpr DefinedType DefinedType_MIN =
    static_cast<DefinedType>(0);
inline constexpr DefinedType DefinedType_MAX =
    static_cast<DefinedType>(7);
[[nodiscard]] inline bool DefinedType_IsValid(int value) {
  return 0 <= value && value <= 7;
}
inline constexpr int DefinedType_ARRAYSIZE = 7 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
DefinedType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(DefinedType) {
  return DefinedType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& DefinedType_Name(T value) {
  static_assert(::std::is_same<T, DefinedType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to DefinedType_Name().");
  return DefinedType_Name(static_cast<DefinedType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& DefinedType_Name(DefinedType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<DefinedType_descriptor, 0, 7>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool DefinedType_Parse(
    ::absl::string_view name, DefinedType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<DefinedType>(DefinedType_descriptor(), name,
                                           value);
}
enum RouteAction : int {
  NONE = 0,
  ACCEPT = 1,
  REJECT = 2,
  RouteAction_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  RouteAction_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t RouteAction_internal_data_[];
inline constexpr RouteAction RouteAction_MIN =
    static_cast<RouteAction>(0);
inline constexpr RouteAction RouteAction_MAX =
    static_cast<RouteAction>(2);
[[nodiscard]] inline bool RouteAction_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int RouteAction_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
RouteAction_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(RouteAction) {
  return RouteAction_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& RouteAction_Name(T value) {
  static_assert(::std::is_same<T, RouteAction>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to RouteAction_Name().");
  return RouteAction_Name(static_cast<RouteAction>(value));
}
template <>
[[nodiscard]] inline const ::std::string& RouteAction_Name(RouteAction value) {
  return ::google::protobuf::internal::NameOfDenseEnum<RouteAction_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool RouteAction_Parse(
    ::absl::string_view name, RouteAction* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<RouteAction>(RouteAction_descriptor(), name,
                                           value);
}
enum PolicyDirection : int {
  UNKNOWN = 0,
  IMPORT = 1,
  EXPORT = 2,
  PolicyDirection_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  PolicyDirection_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t PolicyDirection_internal_data_[];
inline constexpr PolicyDirection PolicyDirection_MIN =
    static_cast<PolicyDirection>(0);
inline constexpr PolicyDirection PolicyDirection_MAX =
    static_cast<PolicyDirection>(2);
[[nodiscard]] inline bool PolicyDirection_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int PolicyDirection_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
PolicyDirection_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(PolicyDirection) {
  return PolicyDirection_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& PolicyDirection_Name(T value) {
  static_assert(::std::is_same<T, PolicyDirection>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to PolicyDirection_Name().");
  return PolicyDirection_Name(static_cast<PolicyDirection>(value));
}
template <>
[[nodiscard]] inline const ::std::string& PolicyDirection_Name(PolicyDirection value) {
  return ::google::protobuf::internal::NameOfDenseEnum<PolicyDirection_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool PolicyDirection_Parse(
    ::absl::string_view name, PolicyDirection* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<PolicyDirection>(PolicyDirection_descriptor(), name,
                                           value);
}
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventRequest_Table_Filter final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventRequest.Table.Filter) */ {
 public:
  inline WatchEventRequest_Table_Filter() : WatchEventRequest_Table_Filter(nullptr) {}
  ~WatchEventRequest_Table_Filter() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventRequest_Table_Filter* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventRequest_Table_Filter));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventRequest_Table_Filter(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventRequest_Table_Filter(const WatchEventRequest_Table_Filter& from) : WatchEventRequest_Table_Filter(nullptr, from) {}
  inline WatchEventRequest_Table_Filter(WatchEventRequest_Table_Filter&& from) noexcept : WatchEventRequest_Table_Filter(nullptr, ::std::move(from)) {}
  inline WatchEventRequest_Table_Filter& operator=(const WatchEventRequest_Table_Filter& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventRequest_Table_Filter& operator=(WatchEventRequest_Table_Filter&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventRequest_Table_Filter& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventRequest_Table_Filter>(&WatchEventRequest_Table_Filter_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(WatchEventRequest_Table_Filter& a, WatchEventRequest_Table_Filter& b) { a.Swap(&b); }
  inline void Swap(WatchEventRequest_Table_Filter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventRequest_Table_Filter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventRequest_Table_Filter* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventRequest_Table_Filter>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventRequest_Table_Filter& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventRequest_Table_Filter& from) { WatchEventRequest_Table_Filter::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventRequest_Table_Filter* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventRequest.Table.Filter"; }

  explicit WatchEventRequest_Table_Filter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventRequest_Table_Filter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventRequest_Table_Filter& from);
  WatchEventRequest_Table_Filter(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventRequest_Table_Filter&& from) noexcept
      : WatchEventRequest_Table_Filter(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = WatchEventRequest_Table_Filter_Type;
  static constexpr Type BEST = WatchEventRequest_Table_Filter_Type_BEST;
  static constexpr Type ADJIN = WatchEventRequest_Table_Filter_Type_ADJIN;
  static constexpr Type POST_POLICY = WatchEventRequest_Table_Filter_Type_POST_POLICY;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return WatchEventRequest_Table_Filter_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = WatchEventRequest_Table_Filter_Type_Type_MIN;
  static constexpr Type Type_MAX = WatchEventRequest_Table_Filter_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = WatchEventRequest_Table_Filter_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return WatchEventRequest_Table_Filter_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return WatchEventRequest_Table_Filter_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return WatchEventRequest_Table_Filter_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kTypeFieldNumber = 1,
    kInitFieldNumber = 2,
  };
  // .apipb.WatchEventRequest.Table.Filter.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::WatchEventRequest_Table_Filter_Type type() const;
  void set_type(::apipb::WatchEventRequest_Table_Filter_Type value);

  private:
  ::apipb::WatchEventRequest_Table_Filter_Type _internal_type() const;
  void _internal_set_type(::apipb::WatchEventRequest_Table_Filter_Type value);

  public:
  // bool init = 2;
  void clear_init() ;
  [[nodiscard]] bool init() const;
  void set_init(bool value);

  private:
  bool _internal_init() const;
  void _internal_set_init(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.WatchEventRequest.Table.Filter)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventRequest_Table_Filter& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int type_;
    bool init_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventRequest_Peer final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:apipb.WatchEventRequest.Peer) */ {
 public:
  inline WatchEventRequest_Peer() : WatchEventRequest_Peer(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventRequest_Peer* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventRequest_Peer));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventRequest_Peer(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventRequest_Peer(const WatchEventRequest_Peer& from) : WatchEventRequest_Peer(nullptr, from) {}
  inline WatchEventRequest_Peer(WatchEventRequest_Peer&& from) noexcept : WatchEventRequest_Peer(nullptr, ::std::move(from)) {}
  inline WatchEventRequest_Peer& operator=(const WatchEventRequest_Peer& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventRequest_Peer& operator=(WatchEventRequest_Peer&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventRequest_Peer& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventRequest_Peer>(&WatchEventRequest_Peer_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(WatchEventRequest_Peer& a, WatchEventRequest_Peer& b) { a.Swap(&b); }
  inline void Swap(WatchEventRequest_Peer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventRequest_Peer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventRequest_Peer* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<WatchEventRequest_Peer>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const WatchEventRequest_Peer& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const WatchEventRequest_Peer& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventRequest.Peer"; }

  explicit WatchEventRequest_Peer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventRequest_Peer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventRequest_Peer& from);
  WatchEventRequest_Peer(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventRequest_Peer&& from) noexcept
      : WatchEventRequest_Peer(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:apipb.WatchEventRequest.Peer)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UseMultiplePathsState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UseMultiplePathsState) */ {
 public:
  inline UseMultiplePathsState() : UseMultiplePathsState(nullptr) {}
  ~UseMultiplePathsState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UseMultiplePathsState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UseMultiplePathsState));
  }
#endif

  template <typename = void>
  explicit constexpr UseMultiplePathsState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UseMultiplePathsState(const UseMultiplePathsState& from) : UseMultiplePathsState(nullptr, from) {}
  inline UseMultiplePathsState(UseMultiplePathsState&& from) noexcept : UseMultiplePathsState(nullptr, ::std::move(from)) {}
  inline UseMultiplePathsState& operator=(const UseMultiplePathsState& from) {
    CopyFrom(from);
    return *this;
  }
  inline UseMultiplePathsState& operator=(UseMultiplePathsState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UseMultiplePathsState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UseMultiplePathsState>(&UseMultiplePathsState_globals_);
  }
  static constexpr int kIndexInFileMessages = 115;
  friend void swap(UseMultiplePathsState& a, UseMultiplePathsState& b) { a.Swap(&b); }
  inline void Swap(UseMultiplePathsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UseMultiplePathsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UseMultiplePathsState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UseMultiplePathsState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UseMultiplePathsState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UseMultiplePathsState& from) { UseMultiplePathsState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UseMultiplePathsState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UseMultiplePathsState"; }

  explicit UseMultiplePathsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UseMultiplePathsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UseMultiplePathsState& from);
  UseMultiplePathsState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UseMultiplePathsState&& from) noexcept
      : UseMultiplePathsState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UseMultiplePathsState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UseMultiplePathsState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UseMultiplePathsConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UseMultiplePathsConfig) */ {
 public:
  inline UseMultiplePathsConfig() : UseMultiplePathsConfig(nullptr) {}
  ~UseMultiplePathsConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UseMultiplePathsConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UseMultiplePathsConfig));
  }
#endif

  template <typename = void>
  explicit constexpr UseMultiplePathsConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UseMultiplePathsConfig(const UseMultiplePathsConfig& from) : UseMultiplePathsConfig(nullptr, from) {}
  inline UseMultiplePathsConfig(UseMultiplePathsConfig&& from) noexcept : UseMultiplePathsConfig(nullptr, ::std::move(from)) {}
  inline UseMultiplePathsConfig& operator=(const UseMultiplePathsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline UseMultiplePathsConfig& operator=(UseMultiplePathsConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UseMultiplePathsConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UseMultiplePathsConfig>(&UseMultiplePathsConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 114;
  friend void swap(UseMultiplePathsConfig& a, UseMultiplePathsConfig& b) { a.Swap(&b); }
  inline void Swap(UseMultiplePathsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UseMultiplePathsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UseMultiplePathsConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UseMultiplePathsConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UseMultiplePathsConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UseMultiplePathsConfig& from) { UseMultiplePathsConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UseMultiplePathsConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UseMultiplePathsConfig"; }

  explicit UseMultiplePathsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UseMultiplePathsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UseMultiplePathsConfig& from);
  UseMultiplePathsConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UseMultiplePathsConfig&& from) noexcept
      : UseMultiplePathsConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UseMultiplePathsConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UseMultiplePathsConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdatePeerResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UpdatePeerResponse) */ {
 public:
  inline UpdatePeerResponse() : UpdatePeerResponse(nullptr) {}
  ~UpdatePeerResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdatePeerResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdatePeerResponse));
  }
#endif

  template <typename = void>
  explicit constexpr UpdatePeerResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdatePeerResponse(const UpdatePeerResponse& from) : UpdatePeerResponse(nullptr, from) {}
  inline UpdatePeerResponse(UpdatePeerResponse&& from) noexcept : UpdatePeerResponse(nullptr, ::std::move(from)) {}
  inline UpdatePeerResponse& operator=(const UpdatePeerResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdatePeerResponse& operator=(UpdatePeerResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdatePeerResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdatePeerResponse>(&UpdatePeerResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(UpdatePeerResponse& a, UpdatePeerResponse& b) { a.Swap(&b); }
  inline void Swap(UpdatePeerResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdatePeerResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdatePeerResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdatePeerResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdatePeerResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdatePeerResponse& from) { UpdatePeerResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdatePeerResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UpdatePeerResponse"; }

  explicit UpdatePeerResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdatePeerResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdatePeerResponse& from);
  UpdatePeerResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdatePeerResponse&& from) noexcept
      : UpdatePeerResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNeedsSoftResetInFieldNumber = 1,
  };
  // bool needs_soft_reset_in = 1;
  void clear_needs_soft_reset_in() ;
  [[nodiscard]] bool needs_soft_reset_in() const;
  void set_needs_soft_reset_in(bool value);

  private:
  bool _internal_needs_soft_reset_in() const;
  void _internal_set_needs_soft_reset_in(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UpdatePeerResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdatePeerResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool needs_soft_reset_in_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdatePeerGroupResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UpdatePeerGroupResponse) */ {
 public:
  inline UpdatePeerGroupResponse() : UpdatePeerGroupResponse(nullptr) {}
  ~UpdatePeerGroupResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdatePeerGroupResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdatePeerGroupResponse));
  }
#endif

  template <typename = void>
  explicit constexpr UpdatePeerGroupResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdatePeerGroupResponse(const UpdatePeerGroupResponse& from) : UpdatePeerGroupResponse(nullptr, from) {}
  inline UpdatePeerGroupResponse(UpdatePeerGroupResponse&& from) noexcept : UpdatePeerGroupResponse(nullptr, ::std::move(from)) {}
  inline UpdatePeerGroupResponse& operator=(const UpdatePeerGroupResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdatePeerGroupResponse& operator=(UpdatePeerGroupResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdatePeerGroupResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdatePeerGroupResponse>(&UpdatePeerGroupResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(UpdatePeerGroupResponse& a, UpdatePeerGroupResponse& b) { a.Swap(&b); }
  inline void Swap(UpdatePeerGroupResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdatePeerGroupResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdatePeerGroupResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdatePeerGroupResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdatePeerGroupResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdatePeerGroupResponse& from) { UpdatePeerGroupResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdatePeerGroupResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UpdatePeerGroupResponse"; }

  explicit UpdatePeerGroupResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdatePeerGroupResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdatePeerGroupResponse& from);
  UpdatePeerGroupResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdatePeerGroupResponse&& from) noexcept
      : UpdatePeerGroupResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNeedsSoftResetInFieldNumber = 1,
  };
  // bool needs_soft_reset_in = 1;
  void clear_needs_soft_reset_in() ;
  [[nodiscard]] bool needs_soft_reset_in() const;
  void set_needs_soft_reset_in(bool value);

  private:
  bool _internal_needs_soft_reset_in() const;
  void _internal_set_needs_soft_reset_in(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UpdatePeerGroupResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdatePeerGroupResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool needs_soft_reset_in_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED TtlSecurity final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.TtlSecurity) */ {
 public:
  inline TtlSecurity() : TtlSecurity(nullptr) {}
  ~TtlSecurity() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TtlSecurity* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TtlSecurity));
  }
#endif

  template <typename = void>
  explicit constexpr TtlSecurity(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TtlSecurity(const TtlSecurity& from) : TtlSecurity(nullptr, from) {}
  inline TtlSecurity(TtlSecurity&& from) noexcept : TtlSecurity(nullptr, ::std::move(from)) {}
  inline TtlSecurity& operator=(const TtlSecurity& from) {
    CopyFrom(from);
    return *this;
  }
  inline TtlSecurity& operator=(TtlSecurity&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const TtlSecurity& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TtlSecurity>(&TtlSecurity_globals_);
  }
  static constexpr int kIndexInFileMessages = 93;
  friend void swap(TtlSecurity& a, TtlSecurity& b) { a.Swap(&b); }
  inline void Swap(TtlSecurity* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TtlSecurity* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] TtlSecurity* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<TtlSecurity>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const TtlSecurity& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const TtlSecurity& from) { TtlSecurity::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TtlSecurity* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.TtlSecurity"; }

  explicit TtlSecurity(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TtlSecurity(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TtlSecurity& from);
  TtlSecurity(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TtlSecurity&& from) noexcept
      : TtlSecurity(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
    kTtlMinFieldNumber = 2,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // uint32 ttl_min = 2;
  void clear_ttl_min() ;
  [[nodiscard]] ::uint32_t ttl_min() const;
  void set_ttl_min(::uint32_t value);

  private:
  ::uint32_t _internal_ttl_min() const;
  void _internal_set_ttl_min(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.TtlSecurity)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TtlSecurity& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    ::uint32_t ttl_min_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Transport final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Transport) */ {
 public:
  inline Transport() : Transport(nullptr) {}
  ~Transport() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Transport* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Transport));
  }
#endif

  template <typename = void>
  explicit constexpr Transport(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Transport(const Transport& from) : Transport(nullptr, from) {}
  inline Transport(Transport&& from) noexcept : Transport(nullptr, ::std::move(from)) {}
  inline Transport& operator=(const Transport& from) {
    CopyFrom(from);
    return *this;
  }
  inline Transport& operator=(Transport&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Transport& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Transport>(&Transport_globals_);
  }
  static constexpr int kIndexInFileMessages = 103;
  friend void swap(Transport& a, Transport& b) { a.Swap(&b); }
  inline void Swap(Transport* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Transport* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Transport* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Transport>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Transport& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Transport& from) { Transport::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Transport* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Transport"; }

  explicit Transport(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Transport(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Transport& from);
  Transport(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Transport&& from) noexcept
      : Transport(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kLocalAddressFieldNumber = 1,
    kRemoteAddressFieldNumber = 5,
    kBindInterfaceFieldNumber = 8,
    kLocalPortFieldNumber = 2,
    kMtuDiscoveryFieldNumber = 3,
    kPassiveModeFieldNumber = 4,
    kRemotePortFieldNumber = 6,
    kTcpMssFieldNumber = 7,
  };
  // string local_address = 1;
  void clear_local_address() ;
  [[nodiscard]] const ::std::string& local_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_local_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_local_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_local_address();
  void set_allocated_local_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_local_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_local_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_local_address();

  public:
  // string remote_address = 5;
  void clear_remote_address() ;
  [[nodiscard]] const ::std::string& remote_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_remote_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_remote_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_remote_address();
  void set_allocated_remote_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_remote_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_remote_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_remote_address();

  public:
  // string bind_interface = 8;
  void clear_bind_interface() ;
  [[nodiscard]] const ::std::string& bind_interface() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_bind_interface(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_bind_interface();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_bind_interface();
  void set_allocated_bind_interface(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_bind_interface() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_bind_interface(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_bind_interface();

  public:
  // uint32 local_port = 2;
  void clear_local_port() ;
  [[nodiscard]] ::uint32_t local_port() const;
  void set_local_port(::uint32_t value);

  private:
  ::uint32_t _internal_local_port() const;
  void _internal_set_local_port(::uint32_t value);

  public:
  // bool mtu_discovery = 3;
  void clear_mtu_discovery() ;
  [[nodiscard]] bool mtu_discovery() const;
  void set_mtu_discovery(bool value);

  private:
  bool _internal_mtu_discovery() const;
  void _internal_set_mtu_discovery(bool value);

  public:
  // bool passive_mode = 4;
  void clear_passive_mode() ;
  [[nodiscard]] bool passive_mode() const;
  void set_passive_mode(bool value);

  private:
  bool _internal_passive_mode() const;
  void _internal_set_passive_mode(bool value);

  public:
  // uint32 remote_port = 6;
  void clear_remote_port() ;
  [[nodiscard]] ::uint32_t remote_port() const;
  void set_remote_port(::uint32_t value);

  private:
  ::uint32_t _internal_remote_port() const;
  void _internal_set_remote_port(::uint32_t value);

  public:
  // uint32 tcp_mss = 7;
  void clear_tcp_mss() ;
  [[nodiscard]] ::uint32_t tcp_mss() const;
  void set_tcp_mss(::uint32_t value);

  private:
  ::uint32_t _internal_tcp_mss() const;
  void _internal_set_tcp_mss(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Transport)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          0, 73,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Transport& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr local_address_;
    ::google::protobuf::internal::ArenaStringPtr remote_address_;
    ::google::protobuf::internal::ArenaStringPtr bind_interface_;
    ::uint32_t local_port_;
    bool mtu_discovery_;
    bool passive_mode_;
    ::uint32_t remote_port_;
    ::uint32_t tcp_mss_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED TimersConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.TimersConfig) */ {
 public:
  inline TimersConfig() : TimersConfig(nullptr) {}
  ~TimersConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TimersConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TimersConfig));
  }
#endif

  template <typename = void>
  explicit constexpr TimersConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TimersConfig(const TimersConfig& from) : TimersConfig(nullptr, from) {}
  inline TimersConfig(TimersConfig&& from) noexcept : TimersConfig(nullptr, ::std::move(from)) {}
  inline TimersConfig& operator=(const TimersConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline TimersConfig& operator=(TimersConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const TimersConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TimersConfig>(&TimersConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 101;
  friend void swap(TimersConfig& a, TimersConfig& b) { a.Swap(&b); }
  inline void Swap(TimersConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TimersConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] TimersConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<TimersConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const TimersConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const TimersConfig& from) { TimersConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TimersConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.TimersConfig"; }

  explicit TimersConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TimersConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TimersConfig& from);
  TimersConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TimersConfig&& from) noexcept
      : TimersConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConnectRetryFieldNumber = 1,
    kHoldTimeFieldNumber = 2,
    kKeepaliveIntervalFieldNumber = 3,
    kMinimumAdvertisementIntervalFieldNumber = 4,
    kIdleHoldTimeAfterResetFieldNumber = 5,
  };
  // uint64 connect_retry = 1;
  void clear_connect_retry() ;
  [[nodiscard]] ::uint64_t connect_retry() const;
  void set_connect_retry(::uint64_t value);

  private:
  ::uint64_t _internal_connect_retry() const;
  void _internal_set_connect_retry(::uint64_t value);

  public:
  // uint64 hold_time = 2;
  void clear_hold_time() ;
  [[nodiscard]] ::uint64_t hold_time() const;
  void set_hold_time(::uint64_t value);

  private:
  ::uint64_t _internal_hold_time() const;
  void _internal_set_hold_time(::uint64_t value);

  public:
  // uint64 keepalive_interval = 3;
  void clear_keepalive_interval() ;
  [[nodiscard]] ::uint64_t keepalive_interval() const;
  void set_keepalive_interval(::uint64_t value);

  private:
  ::uint64_t _internal_keepalive_interval() const;
  void _internal_set_keepalive_interval(::uint64_t value);

  public:
  // uint64 minimum_advertisement_interval = 4;
  void clear_minimum_advertisement_interval() ;
  [[nodiscard]] ::uint64_t minimum_advertisement_interval() const;
  void set_minimum_advertisement_interval(::uint64_t value);

  private:
  ::uint64_t _internal_minimum_advertisement_interval() const;
  void _internal_set_minimum_advertisement_interval(::uint64_t value);

  public:
  // uint64 idle_hold_time_after_reset = 5;
  void clear_idle_hold_time_after_reset() ;
  [[nodiscard]] ::uint64_t idle_hold_time_after_reset() const;
  void set_idle_hold_time_after_reset(::uint64_t value);

  private:
  ::uint64_t _internal_idle_hold_time_after_reset() const;
  void _internal_set_idle_hold_time_after_reset(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.TimersConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TimersConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint64_t connect_retry_;
    ::uint64_t hold_time_;
    ::uint64_t keepalive_interval_;
    ::uint64_t minimum_advertisement_interval_;
    ::uint64_t idle_hold_time_after_reset_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED TableLookupPrefix final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.TableLookupPrefix) */ {
 public:
  inline TableLookupPrefix() : TableLookupPrefix(nullptr) {}
  ~TableLookupPrefix() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TableLookupPrefix* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TableLookupPrefix));
  }
#endif

  template <typename = void>
  explicit constexpr TableLookupPrefix(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TableLookupPrefix(const TableLookupPrefix& from) : TableLookupPrefix(nullptr, from) {}
  inline TableLookupPrefix(TableLookupPrefix&& from) noexcept : TableLookupPrefix(nullptr, ::std::move(from)) {}
  inline TableLookupPrefix& operator=(const TableLookupPrefix& from) {
    CopyFrom(from);
    return *this;
  }
  inline TableLookupPrefix& operator=(TableLookupPrefix&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const TableLookupPrefix& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TableLookupPrefix>(&TableLookupPrefix_globals_);
  }
  static constexpr int kIndexInFileMessages = 34;
  friend void swap(TableLookupPrefix& a, TableLookupPrefix& b) { a.Swap(&b); }
  inline void Swap(TableLookupPrefix* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TableLookupPrefix* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] TableLookupPrefix* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<TableLookupPrefix>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const TableLookupPrefix& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const TableLookupPrefix& from) { TableLookupPrefix::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TableLookupPrefix* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.TableLookupPrefix"; }

  explicit TableLookupPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TableLookupPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TableLookupPrefix& from);
  TableLookupPrefix(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TableLookupPrefix&& from) noexcept
      : TableLookupPrefix(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = TableLookupPrefix_Type;
  static constexpr Type EXACT = TableLookupPrefix_Type_EXACT;
  static constexpr Type LONGER = TableLookupPrefix_Type_LONGER;
  static constexpr Type SHORTER = TableLookupPrefix_Type_SHORTER;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return TableLookupPrefix_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = TableLookupPrefix_Type_Type_MIN;
  static constexpr Type Type_MAX = TableLookupPrefix_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = TableLookupPrefix_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return TableLookupPrefix_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return TableLookupPrefix_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return TableLookupPrefix_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kPrefixFieldNumber = 1,
    kTypeFieldNumber = 2,
  };
  // string prefix = 1;
  void clear_prefix() ;
  [[nodiscard]] const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // .apipb.TableLookupPrefix.Type type = 2;
  void clear_type() ;
  [[nodiscard]] ::apipb::TableLookupPrefix_Type type() const;
  void set_type(::apipb::TableLookupPrefix_Type value);

  private:
  ::apipb::TableLookupPrefix_Type _internal_type() const;
  void _internal_set_type(::apipb::TableLookupPrefix_Type value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.TableLookupPrefix)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 38,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TableLookupPrefix& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StopBgpRequest final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:apipb.StopBgpRequest) */ {
 public:
  inline StopBgpRequest() : StopBgpRequest(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StopBgpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StopBgpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr StopBgpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StopBgpRequest(const StopBgpRequest& from) : StopBgpRequest(nullptr, from) {}
  inline StopBgpRequest(StopBgpRequest&& from) noexcept : StopBgpRequest(nullptr, ::std::move(from)) {}
  inline StopBgpRequest& operator=(const StopBgpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline StopBgpRequest& operator=(StopBgpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StopBgpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StopBgpRequest>(&StopBgpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(StopBgpRequest& a, StopBgpRequest& b) { a.Swap(&b); }
  inline void Swap(StopBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StopBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StopBgpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<StopBgpRequest>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const StopBgpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const StopBgpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.StopBgpRequest"; }

  explicit StopBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StopBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StopBgpRequest& from);
  StopBgpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StopBgpRequest&& from) noexcept
      : StopBgpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:apipb.StopBgpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ShutdownPeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ShutdownPeerRequest) */ {
 public:
  inline ShutdownPeerRequest() : ShutdownPeerRequest(nullptr) {}
  ~ShutdownPeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ShutdownPeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ShutdownPeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ShutdownPeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ShutdownPeerRequest(const ShutdownPeerRequest& from) : ShutdownPeerRequest(nullptr, from) {}
  inline ShutdownPeerRequest(ShutdownPeerRequest&& from) noexcept : ShutdownPeerRequest(nullptr, ::std::move(from)) {}
  inline ShutdownPeerRequest& operator=(const ShutdownPeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ShutdownPeerRequest& operator=(ShutdownPeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ShutdownPeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ShutdownPeerRequest>(&ShutdownPeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 18;
  friend void swap(ShutdownPeerRequest& a, ShutdownPeerRequest& b) { a.Swap(&b); }
  inline void Swap(ShutdownPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ShutdownPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ShutdownPeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ShutdownPeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ShutdownPeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ShutdownPeerRequest& from) { ShutdownPeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ShutdownPeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ShutdownPeerRequest"; }

  explicit ShutdownPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ShutdownPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ShutdownPeerRequest& from);
  ShutdownPeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ShutdownPeerRequest&& from) noexcept
      : ShutdownPeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kCommunicationFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // string communication = 2;
  void clear_communication() ;
  [[nodiscard]] const ::std::string& communication() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_communication(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_communication();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_communication();
  void set_allocated_communication(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_communication() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_communication(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_communication();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ShutdownPeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 54,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ShutdownPeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::google::protobuf::internal::ArenaStringPtr communication_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SetLogLevelRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.SetLogLevelRequest) */ {
 public:
  inline SetLogLevelRequest() : SetLogLevelRequest(nullptr) {}
  ~SetLogLevelRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SetLogLevelRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SetLogLevelRequest));
  }
#endif

  template <typename = void>
  explicit constexpr SetLogLevelRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SetLogLevelRequest(const SetLogLevelRequest& from) : SetLogLevelRequest(nullptr, from) {}
  inline SetLogLevelRequest(SetLogLevelRequest&& from) noexcept : SetLogLevelRequest(nullptr, ::std::move(from)) {}
  inline SetLogLevelRequest& operator=(const SetLogLevelRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetLogLevelRequest& operator=(SetLogLevelRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SetLogLevelRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SetLogLevelRequest>(&SetLogLevelRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 156;
  friend void swap(SetLogLevelRequest& a, SetLogLevelRequest& b) { a.Swap(&b); }
  inline void Swap(SetLogLevelRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetLogLevelRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SetLogLevelRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<SetLogLevelRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SetLogLevelRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SetLogLevelRequest& from) { SetLogLevelRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(SetLogLevelRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.SetLogLevelRequest"; }

  explicit SetLogLevelRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SetLogLevelRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SetLogLevelRequest& from);
  SetLogLevelRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SetLogLevelRequest&& from) noexcept
      : SetLogLevelRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Level = SetLogLevelRequest_Level;
  static constexpr Level PANIC = SetLogLevelRequest_Level_PANIC;
  static constexpr Level FATAL = SetLogLevelRequest_Level_FATAL;
  static constexpr Level ERROR = SetLogLevelRequest_Level_ERROR;
  static constexpr Level WARN = SetLogLevelRequest_Level_WARN;
  static constexpr Level INFO = SetLogLevelRequest_Level_INFO;
  static constexpr Level DEBUG = SetLogLevelRequest_Level_DEBUG;
  static constexpr Level TRACE = SetLogLevelRequest_Level_TRACE;
  [[nodiscard]] static inline bool Level_IsValid(int value) {
    return SetLogLevelRequest_Level_IsValid(value);
  }
  static constexpr Level Level_MIN = SetLogLevelRequest_Level_Level_MIN;
  static constexpr Level Level_MAX = SetLogLevelRequest_Level_Level_MAX;
  static constexpr int Level_ARRAYSIZE = SetLogLevelRequest_Level_Level_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Level_descriptor() {
    return SetLogLevelRequest_Level_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Level_Name(T value) {
    return SetLogLevelRequest_Level_Name(value);
  }
  [[nodiscard]] static inline bool Level_Parse(
      ::absl::string_view name, Level* PROTOBUF_NONNULL value) {
    return SetLogLevelRequest_Level_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kLevelFieldNumber = 1,
  };
  // .apipb.SetLogLevelRequest.Level level = 1;
  void clear_level() ;
  [[nodiscard]] ::apipb::SetLogLevelRequest_Level level() const;
  void set_level(::apipb::SetLogLevelRequest_Level value);

  private:
  ::apipb::SetLogLevelRequest_Level _internal_level() const;
  void _internal_set_level(::apipb::SetLogLevelRequest_Level value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.SetLogLevelRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SetLogLevelRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int level_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteTargetMembershipState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteTargetMembershipState) */ {
 public:
  inline RouteTargetMembershipState() : RouteTargetMembershipState(nullptr) {}
  ~RouteTargetMembershipState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteTargetMembershipState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteTargetMembershipState));
  }
#endif

  template <typename = void>
  explicit constexpr RouteTargetMembershipState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteTargetMembershipState(const RouteTargetMembershipState& from) : RouteTargetMembershipState(nullptr, from) {}
  inline RouteTargetMembershipState(RouteTargetMembershipState&& from) noexcept : RouteTargetMembershipState(nullptr, ::std::move(from)) {}
  inline RouteTargetMembershipState& operator=(const RouteTargetMembershipState& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteTargetMembershipState& operator=(RouteTargetMembershipState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteTargetMembershipState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteTargetMembershipState>(&RouteTargetMembershipState_globals_);
  }
  static constexpr int kIndexInFileMessages = 124;
  friend void swap(RouteTargetMembershipState& a, RouteTargetMembershipState& b) { a.Swap(&b); }
  inline void Swap(RouteTargetMembershipState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteTargetMembershipState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteTargetMembershipState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteTargetMembershipState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteTargetMembershipState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteTargetMembershipState& from) { RouteTargetMembershipState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteTargetMembershipState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteTargetMembershipState"; }

  explicit RouteTargetMembershipState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteTargetMembershipState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteTargetMembershipState& from);
  RouteTargetMembershipState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteTargetMembershipState&& from) noexcept
      : RouteTargetMembershipState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDeferralTimeFieldNumber = 1,
  };
  // uint32 deferral_time = 1;
  void clear_deferral_time() ;
  [[nodiscard]] ::uint32_t deferral_time() const;
  void set_deferral_time(::uint32_t value);

  private:
  ::uint32_t _internal_deferral_time() const;
  void _internal_set_deferral_time(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteTargetMembershipState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteTargetMembershipState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t deferral_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteTargetMembershipConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteTargetMembershipConfig) */ {
 public:
  inline RouteTargetMembershipConfig() : RouteTargetMembershipConfig(nullptr) {}
  ~RouteTargetMembershipConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteTargetMembershipConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteTargetMembershipConfig));
  }
#endif

  template <typename = void>
  explicit constexpr RouteTargetMembershipConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteTargetMembershipConfig(const RouteTargetMembershipConfig& from) : RouteTargetMembershipConfig(nullptr, from) {}
  inline RouteTargetMembershipConfig(RouteTargetMembershipConfig&& from) noexcept : RouteTargetMembershipConfig(nullptr, ::std::move(from)) {}
  inline RouteTargetMembershipConfig& operator=(const RouteTargetMembershipConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteTargetMembershipConfig& operator=(RouteTargetMembershipConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteTargetMembershipConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteTargetMembershipConfig>(&RouteTargetMembershipConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 123;
  friend void swap(RouteTargetMembershipConfig& a, RouteTargetMembershipConfig& b) { a.Swap(&b); }
  inline void Swap(RouteTargetMembershipConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteTargetMembershipConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteTargetMembershipConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteTargetMembershipConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteTargetMembershipConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteTargetMembershipConfig& from) { RouteTargetMembershipConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteTargetMembershipConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteTargetMembershipConfig"; }

  explicit RouteTargetMembershipConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteTargetMembershipConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteTargetMembershipConfig& from);
  RouteTargetMembershipConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteTargetMembershipConfig&& from) noexcept
      : RouteTargetMembershipConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDeferralTimeFieldNumber = 1,
  };
  // uint32 deferral_time = 1;
  void clear_deferral_time() ;
  [[nodiscard]] ::uint32_t deferral_time() const;
  void set_deferral_time(::uint32_t value);

  private:
  ::uint32_t _internal_deferral_time() const;
  void _internal_set_deferral_time(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteTargetMembershipConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteTargetMembershipConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t deferral_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteServer final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteServer) */ {
 public:
  inline RouteServer() : RouteServer(nullptr) {}
  ~RouteServer() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteServer* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteServer));
  }
#endif

  template <typename = void>
  explicit constexpr RouteServer(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteServer(const RouteServer& from) : RouteServer(nullptr, from) {}
  inline RouteServer(RouteServer&& from) noexcept : RouteServer(nullptr, ::std::move(from)) {}
  inline RouteServer& operator=(const RouteServer& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteServer& operator=(RouteServer&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteServer& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteServer>(&RouteServer_globals_);
  }
  static constexpr int kIndexInFileMessages = 104;
  friend void swap(RouteServer& a, RouteServer& b) { a.Swap(&b); }
  inline void Swap(RouteServer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteServer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteServer* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteServer>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteServer& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteServer& from) { RouteServer::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteServer* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteServer"; }

  explicit RouteServer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteServer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteServer& from);
  RouteServer(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteServer&& from) noexcept
      : RouteServer(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRouteServerClientFieldNumber = 1,
    kSecondaryRouteFieldNumber = 2,
  };
  // bool route_server_client = 1;
  void clear_route_server_client() ;
  [[nodiscard]] bool route_server_client() const;
  void set_route_server_client(bool value);

  private:
  bool _internal_route_server_client() const;
  void _internal_set_route_server_client(bool value);

  public:
  // bool secondary_route = 2;
  void clear_secondary_route() ;
  [[nodiscard]] bool secondary_route() const;
  void set_secondary_route(bool value);

  private:
  bool _internal_secondary_route() const;
  void _internal_set_secondary_route(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteServer)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteServer& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool route_server_client_;
    bool secondary_route_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteSelectionOptionsState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteSelectionOptionsState) */ {
 public:
  inline RouteSelectionOptionsState() : RouteSelectionOptionsState(nullptr) {}
  ~RouteSelectionOptionsState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteSelectionOptionsState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteSelectionOptionsState));
  }
#endif

  template <typename = void>
  explicit constexpr RouteSelectionOptionsState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteSelectionOptionsState(const RouteSelectionOptionsState& from) : RouteSelectionOptionsState(nullptr, from) {}
  inline RouteSelectionOptionsState(RouteSelectionOptionsState&& from) noexcept : RouteSelectionOptionsState(nullptr, ::std::move(from)) {}
  inline RouteSelectionOptionsState& operator=(const RouteSelectionOptionsState& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteSelectionOptionsState& operator=(RouteSelectionOptionsState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteSelectionOptionsState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteSelectionOptionsState>(&RouteSelectionOptionsState_globals_);
  }
  static constexpr int kIndexInFileMessages = 112;
  friend void swap(RouteSelectionOptionsState& a, RouteSelectionOptionsState& b) { a.Swap(&b); }
  inline void Swap(RouteSelectionOptionsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteSelectionOptionsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteSelectionOptionsState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteSelectionOptionsState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteSelectionOptionsState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteSelectionOptionsState& from) { RouteSelectionOptionsState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteSelectionOptionsState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteSelectionOptionsState"; }

  explicit RouteSelectionOptionsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteSelectionOptionsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteSelectionOptionsState& from);
  RouteSelectionOptionsState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteSelectionOptionsState&& from) noexcept
      : RouteSelectionOptionsState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAlwaysCompareMedFieldNumber = 1,
    kIgnoreAsPathLengthFieldNumber = 2,
    kExternalCompareRouterIdFieldNumber = 3,
    kAdvertiseInactiveRoutesFieldNumber = 4,
    kEnableAigpFieldNumber = 5,
    kIgnoreNextHopIgpMetricFieldNumber = 6,
    kDisableBestPathSelectionFieldNumber = 7,
  };
  // bool always_compare_med = 1;
  void clear_always_compare_med() ;
  [[nodiscard]] bool always_compare_med() const;
  void set_always_compare_med(bool value);

  private:
  bool _internal_always_compare_med() const;
  void _internal_set_always_compare_med(bool value);

  public:
  // bool ignore_as_path_length = 2;
  void clear_ignore_as_path_length() ;
  [[nodiscard]] bool ignore_as_path_length() const;
  void set_ignore_as_path_length(bool value);

  private:
  bool _internal_ignore_as_path_length() const;
  void _internal_set_ignore_as_path_length(bool value);

  public:
  // bool external_compare_router_id = 3;
  void clear_external_compare_router_id() ;
  [[nodiscard]] bool external_compare_router_id() const;
  void set_external_compare_router_id(bool value);

  private:
  bool _internal_external_compare_router_id() const;
  void _internal_set_external_compare_router_id(bool value);

  public:
  // bool advertise_inactive_routes = 4;
  void clear_advertise_inactive_routes() ;
  [[nodiscard]] bool advertise_inactive_routes() const;
  void set_advertise_inactive_routes(bool value);

  private:
  bool _internal_advertise_inactive_routes() const;
  void _internal_set_advertise_inactive_routes(bool value);

  public:
  // bool enable_aigp = 5;
  void clear_enable_aigp() ;
  [[nodiscard]] bool enable_aigp() const;
  void set_enable_aigp(bool value);

  private:
  bool _internal_enable_aigp() const;
  void _internal_set_enable_aigp(bool value);

  public:
  // bool ignore_next_hop_igp_metric = 6;
  void clear_ignore_next_hop_igp_metric() ;
  [[nodiscard]] bool ignore_next_hop_igp_metric() const;
  void set_ignore_next_hop_igp_metric(bool value);

  private:
  bool _internal_ignore_next_hop_igp_metric() const;
  void _internal_set_ignore_next_hop_igp_metric(bool value);

  public:
  // bool disable_best_path_selection = 7;
  void clear_disable_best_path_selection() ;
  [[nodiscard]] bool disable_best_path_selection() const;
  void set_disable_best_path_selection(bool value);

  private:
  bool _internal_disable_best_path_selection() const;
  void _internal_set_disable_best_path_selection(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteSelectionOptionsState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteSelectionOptionsState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool always_compare_med_;
    bool ignore_as_path_length_;
    bool external_compare_router_id_;
    bool advertise_inactive_routes_;
    bool enable_aigp_;
    bool ignore_next_hop_igp_metric_;
    bool disable_best_path_selection_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteSelectionOptionsConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteSelectionOptionsConfig) */ {
 public:
  inline RouteSelectionOptionsConfig() : RouteSelectionOptionsConfig(nullptr) {}
  ~RouteSelectionOptionsConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteSelectionOptionsConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteSelectionOptionsConfig));
  }
#endif

  template <typename = void>
  explicit constexpr RouteSelectionOptionsConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteSelectionOptionsConfig(const RouteSelectionOptionsConfig& from) : RouteSelectionOptionsConfig(nullptr, from) {}
  inline RouteSelectionOptionsConfig(RouteSelectionOptionsConfig&& from) noexcept : RouteSelectionOptionsConfig(nullptr, ::std::move(from)) {}
  inline RouteSelectionOptionsConfig& operator=(const RouteSelectionOptionsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteSelectionOptionsConfig& operator=(RouteSelectionOptionsConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteSelectionOptionsConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteSelectionOptionsConfig>(&RouteSelectionOptionsConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 111;
  friend void swap(RouteSelectionOptionsConfig& a, RouteSelectionOptionsConfig& b) { a.Swap(&b); }
  inline void Swap(RouteSelectionOptionsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteSelectionOptionsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteSelectionOptionsConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteSelectionOptionsConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteSelectionOptionsConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteSelectionOptionsConfig& from) { RouteSelectionOptionsConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteSelectionOptionsConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteSelectionOptionsConfig"; }

  explicit RouteSelectionOptionsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteSelectionOptionsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteSelectionOptionsConfig& from);
  RouteSelectionOptionsConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteSelectionOptionsConfig&& from) noexcept
      : RouteSelectionOptionsConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAlwaysCompareMedFieldNumber = 1,
    kIgnoreAsPathLengthFieldNumber = 2,
    kExternalCompareRouterIdFieldNumber = 3,
    kAdvertiseInactiveRoutesFieldNumber = 4,
    kEnableAigpFieldNumber = 5,
    kIgnoreNextHopIgpMetricFieldNumber = 6,
    kDisableBestPathSelectionFieldNumber = 7,
  };
  // bool always_compare_med = 1;
  void clear_always_compare_med() ;
  [[nodiscard]] bool always_compare_med() const;
  void set_always_compare_med(bool value);

  private:
  bool _internal_always_compare_med() const;
  void _internal_set_always_compare_med(bool value);

  public:
  // bool ignore_as_path_length = 2;
  void clear_ignore_as_path_length() ;
  [[nodiscard]] bool ignore_as_path_length() const;
  void set_ignore_as_path_length(bool value);

  private:
  bool _internal_ignore_as_path_length() const;
  void _internal_set_ignore_as_path_length(bool value);

  public:
  // bool external_compare_router_id = 3;
  void clear_external_compare_router_id() ;
  [[nodiscard]] bool external_compare_router_id() const;
  void set_external_compare_router_id(bool value);

  private:
  bool _internal_external_compare_router_id() const;
  void _internal_set_external_compare_router_id(bool value);

  public:
  // bool advertise_inactive_routes = 4;
  void clear_advertise_inactive_routes() ;
  [[nodiscard]] bool advertise_inactive_routes() const;
  void set_advertise_inactive_routes(bool value);

  private:
  bool _internal_advertise_inactive_routes() const;
  void _internal_set_advertise_inactive_routes(bool value);

  public:
  // bool enable_aigp = 5;
  void clear_enable_aigp() ;
  [[nodiscard]] bool enable_aigp() const;
  void set_enable_aigp(bool value);

  private:
  bool _internal_enable_aigp() const;
  void _internal_set_enable_aigp(bool value);

  public:
  // bool ignore_next_hop_igp_metric = 6;
  void clear_ignore_next_hop_igp_metric() ;
  [[nodiscard]] bool ignore_next_hop_igp_metric() const;
  void set_ignore_next_hop_igp_metric(bool value);

  private:
  bool _internal_ignore_next_hop_igp_metric() const;
  void _internal_set_ignore_next_hop_igp_metric(bool value);

  public:
  // bool disable_best_path_selection = 7;
  void clear_disable_best_path_selection() ;
  [[nodiscard]] bool disable_best_path_selection() const;
  void set_disable_best_path_selection(bool value);

  private:
  bool _internal_disable_best_path_selection() const;
  void _internal_set_disable_best_path_selection(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteSelectionOptionsConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteSelectionOptionsConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool always_compare_med_;
    bool ignore_as_path_length_;
    bool external_compare_router_id_;
    bool advertise_inactive_routes_;
    bool enable_aigp_;
    bool ignore_next_hop_igp_metric_;
    bool disable_best_path_selection_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteReflector final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteReflector) */ {
 public:
  inline RouteReflector() : RouteReflector(nullptr) {}
  ~RouteReflector() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteReflector* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteReflector));
  }
#endif

  template <typename = void>
  explicit constexpr RouteReflector(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteReflector(const RouteReflector& from) : RouteReflector(nullptr, from) {}
  inline RouteReflector(RouteReflector&& from) noexcept : RouteReflector(nullptr, ::std::move(from)) {}
  inline RouteReflector& operator=(const RouteReflector& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteReflector& operator=(RouteReflector&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteReflector& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteReflector>(&RouteReflector_globals_);
  }
  static constexpr int kIndexInFileMessages = 95;
  friend void swap(RouteReflector& a, RouteReflector& b) { a.Swap(&b); }
  inline void Swap(RouteReflector* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteReflector* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteReflector* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteReflector>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteReflector& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteReflector& from) { RouteReflector::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteReflector* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteReflector"; }

  explicit RouteReflector(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteReflector(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteReflector& from);
  RouteReflector(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteReflector&& from) noexcept
      : RouteReflector(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRouteReflectorClusterIdFieldNumber = 2,
    kRouteReflectorClientFieldNumber = 1,
  };
  // string route_reflector_cluster_id = 2;
  void clear_route_reflector_cluster_id() ;
  [[nodiscard]] const ::std::string& route_reflector_cluster_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_route_reflector_cluster_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_route_reflector_cluster_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_route_reflector_cluster_id();
  void set_allocated_route_reflector_cluster_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_route_reflector_cluster_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_route_reflector_cluster_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_route_reflector_cluster_id();

  public:
  // bool route_reflector_client = 1;
  void clear_route_reflector_client() ;
  [[nodiscard]] bool route_reflector_client() const;
  void set_route_reflector_client(bool value);

  private:
  bool _internal_route_reflector_client() const;
  void _internal_set_route_reflector_client(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteReflector)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 55,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteReflector& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr route_reflector_cluster_id_;
    bool route_reflector_client_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ResetRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ResetRpkiRequest) */ {
 public:
  inline ResetRpkiRequest() : ResetRpkiRequest(nullptr) {}
  ~ResetRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ResetRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ResetRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ResetRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ResetRpkiRequest(const ResetRpkiRequest& from) : ResetRpkiRequest(nullptr, from) {}
  inline ResetRpkiRequest(ResetRpkiRequest&& from) noexcept : ResetRpkiRequest(nullptr, ::std::move(from)) {}
  inline ResetRpkiRequest& operator=(const ResetRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ResetRpkiRequest& operator=(ResetRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ResetRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ResetRpkiRequest>(&ResetRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 68;
  friend void swap(ResetRpkiRequest& a, ResetRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(ResetRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ResetRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ResetRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ResetRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ResetRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ResetRpkiRequest& from) { ResetRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ResetRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ResetRpkiRequest"; }

  explicit ResetRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ResetRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ResetRpkiRequest& from);
  ResetRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ResetRpkiRequest&& from) noexcept
      : ResetRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
    kSoftFieldNumber = 3,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // bool soft = 3;
  void clear_soft() ;
  [[nodiscard]] bool soft() const;
  void set_soft(bool value);

  private:
  bool _internal_soft() const;
  void _internal_set_soft(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ResetRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 38,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ResetRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    bool soft_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ResetPeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ResetPeerRequest) */ {
 public:
  inline ResetPeerRequest() : ResetPeerRequest(nullptr) {}
  ~ResetPeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ResetPeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ResetPeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ResetPeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ResetPeerRequest(const ResetPeerRequest& from) : ResetPeerRequest(nullptr, from) {}
  inline ResetPeerRequest(ResetPeerRequest&& from) noexcept : ResetPeerRequest(nullptr, ::std::move(from)) {}
  inline ResetPeerRequest& operator=(const ResetPeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ResetPeerRequest& operator=(ResetPeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ResetPeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ResetPeerRequest>(&ResetPeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(ResetPeerRequest& a, ResetPeerRequest& b) { a.Swap(&b); }
  inline void Swap(ResetPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ResetPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ResetPeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ResetPeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ResetPeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ResetPeerRequest& from) { ResetPeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ResetPeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ResetPeerRequest"; }

  explicit ResetPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ResetPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ResetPeerRequest& from);
  ResetPeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ResetPeerRequest&& from) noexcept
      : ResetPeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using SoftResetDirection = ResetPeerRequest_SoftResetDirection;
  static constexpr SoftResetDirection IN = ResetPeerRequest_SoftResetDirection_IN;
  static constexpr SoftResetDirection OUT = ResetPeerRequest_SoftResetDirection_OUT;
  static constexpr SoftResetDirection BOTH = ResetPeerRequest_SoftResetDirection_BOTH;
  [[nodiscard]] static inline bool SoftResetDirection_IsValid(int value) {
    return ResetPeerRequest_SoftResetDirection_IsValid(value);
  }
  static constexpr SoftResetDirection SoftResetDirection_MIN = ResetPeerRequest_SoftResetDirection_SoftResetDirection_MIN;
  static constexpr SoftResetDirection SoftResetDirection_MAX = ResetPeerRequest_SoftResetDirection_SoftResetDirection_MAX;
  static constexpr int SoftResetDirection_ARRAYSIZE = ResetPeerRequest_SoftResetDirection_SoftResetDirection_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SoftResetDirection_descriptor() {
    return ResetPeerRequest_SoftResetDirection_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& SoftResetDirection_Name(T value) {
    return ResetPeerRequest_SoftResetDirection_Name(value);
  }
  [[nodiscard]] static inline bool SoftResetDirection_Parse(
      ::absl::string_view name, SoftResetDirection* PROTOBUF_NONNULL value) {
    return ResetPeerRequest_SoftResetDirection_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kCommunicationFieldNumber = 2,
    kSoftFieldNumber = 3,
    kDirectionFieldNumber = 4,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // string communication = 2;
  void clear_communication() ;
  [[nodiscard]] const ::std::string& communication() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_communication(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_communication();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_communication();
  void set_allocated_communication(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_communication() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_communication(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_communication();

  public:
  // bool soft = 3;
  void clear_soft() ;
  [[nodiscard]] bool soft() const;
  void set_soft(bool value);

  private:
  bool _internal_soft() const;
  void _internal_set_soft(bool value);

  public:
  // .apipb.ResetPeerRequest.SoftResetDirection direction = 4;
  void clear_direction() ;
  [[nodiscard]] ::apipb::ResetPeerRequest_SoftResetDirection direction() const;
  void set_direction(::apipb::ResetPeerRequest_SoftResetDirection value);

  private:
  ::apipb::ResetPeerRequest_SoftResetDirection _internal_direction() const;
  void _internal_set_direction(::apipb::ResetPeerRequest_SoftResetDirection value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ResetPeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 51,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ResetPeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::google::protobuf::internal::ArenaStringPtr communication_;
    bool soft_;
    int direction_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RPKIConf final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RPKIConf) */ {
 public:
  inline RPKIConf() : RPKIConf(nullptr) {}
  ~RPKIConf() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RPKIConf* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RPKIConf));
  }
#endif

  template <typename = void>
  explicit constexpr RPKIConf(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RPKIConf(const RPKIConf& from) : RPKIConf(nullptr, from) {}
  inline RPKIConf(RPKIConf&& from) noexcept : RPKIConf(nullptr, ::std::move(from)) {}
  inline RPKIConf& operator=(const RPKIConf& from) {
    CopyFrom(from);
    return *this;
  }
  inline RPKIConf& operator=(RPKIConf&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RPKIConf& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RPKIConf>(&RPKIConf_globals_);
  }
  static constexpr int kIndexInFileMessages = 153;
  friend void swap(RPKIConf& a, RPKIConf& b) { a.Swap(&b); }
  inline void Swap(RPKIConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RPKIConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RPKIConf* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RPKIConf>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RPKIConf& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RPKIConf& from) { RPKIConf::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RPKIConf* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RPKIConf"; }

  explicit RPKIConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RPKIConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RPKIConf& from);
  RPKIConf(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RPKIConf&& from) noexcept
      : RPKIConf(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kRemotePortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 remote_port = 2;
  void clear_remote_port() ;
  [[nodiscard]] ::uint32_t remote_port() const;
  void set_remote_port(::uint32_t value);

  private:
  ::uint32_t _internal_remote_port() const;
  void _internal_set_remote_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RPKIConf)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 30,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RPKIConf& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t remote_port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Queues final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Queues) */ {
 public:
  inline Queues() : Queues(nullptr) {}
  ~Queues() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Queues* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Queues));
  }
#endif

  template <typename = void>
  explicit constexpr Queues(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Queues(const Queues& from) : Queues(nullptr, from) {}
  inline Queues(Queues&& from) noexcept : Queues(nullptr, ::std::move(from)) {}
  inline Queues& operator=(const Queues& from) {
    CopyFrom(from);
    return *this;
  }
  inline Queues& operator=(Queues&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Queues& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Queues>(&Queues_globals_);
  }
  static constexpr int kIndexInFileMessages = 99;
  friend void swap(Queues& a, Queues& b) { a.Swap(&b); }
  inline void Swap(Queues* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Queues* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Queues* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Queues>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Queues& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Queues& from) { Queues::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Queues* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Queues"; }

  explicit Queues(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Queues(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Queues& from);
  Queues(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Queues&& from) noexcept
      : Queues(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kInputFieldNumber = 1,
    kOutputFieldNumber = 2,
  };
  // uint32 input = 1;
  void clear_input() ;
  [[nodiscard]] ::uint32_t input() const;
  void set_input(::uint32_t value);

  private:
  ::uint32_t _internal_input() const;
  void _internal_set_input(::uint32_t value);

  public:
  // uint32 output = 2;
  void clear_output() ;
  [[nodiscard]] ::uint32_t output() const;
  void set_output(::uint32_t value);

  private:
  ::uint32_t _internal_output() const;
  void _internal_set_output(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Queues)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Queues& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t input_;
    ::uint32_t output_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Prefix final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Prefix) */ {
 public:
  inline Prefix() : Prefix(nullptr) {}
  ~Prefix() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Prefix* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Prefix));
  }
#endif

  template <typename = void>
  explicit constexpr Prefix(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Prefix(const Prefix& from) : Prefix(nullptr, from) {}
  inline Prefix(Prefix&& from) noexcept : Prefix(nullptr, ::std::move(from)) {}
  inline Prefix& operator=(const Prefix& from) {
    CopyFrom(from);
    return *this;
  }
  inline Prefix& operator=(Prefix&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Prefix& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Prefix>(&Prefix_globals_);
  }
  static constexpr int kIndexInFileMessages = 133;
  friend void swap(Prefix& a, Prefix& b) { a.Swap(&b); }
  inline void Swap(Prefix* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Prefix* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Prefix* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Prefix>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Prefix& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Prefix& from) { Prefix::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Prefix* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Prefix"; }

  explicit Prefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Prefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Prefix& from);
  Prefix(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Prefix&& from) noexcept
      : Prefix(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIpPrefixFieldNumber = 1,
    kMaskLengthMinFieldNumber = 2,
    kMaskLengthMaxFieldNumber = 3,
  };
  // string ip_prefix = 1;
  void clear_ip_prefix() ;
  [[nodiscard]] const ::std::string& ip_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ip_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_ip_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_ip_prefix();
  void set_allocated_ip_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_ip_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_ip_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_ip_prefix();

  public:
  // uint32 mask_length_min = 2;
  void clear_mask_length_min() ;
  [[nodiscard]] ::uint32_t mask_length_min() const;
  void set_mask_length_min(::uint32_t value);

  private:
  ::uint32_t _internal_mask_length_min() const;
  void _internal_set_mask_length_min(::uint32_t value);

  public:
  // uint32 mask_length_max = 3;
  void clear_mask_length_max() ;
  [[nodiscard]] ::uint32_t mask_length_max() const;
  void set_mask_length_max(::uint32_t value);

  private:
  ::uint32_t _internal_mask_length_max() const;
  void _internal_set_mask_length_max(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Prefix)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 30,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Prefix& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr ip_prefix_;
    ::uint32_t mask_length_min_;
    ::uint32_t mask_length_max_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PeerGroupState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PeerGroupState) */ {
 public:
  inline PeerGroupState() : PeerGroupState(nullptr) {}
  ~PeerGroupState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PeerGroupState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PeerGroupState));
  }
#endif

  template <typename = void>
  explicit constexpr PeerGroupState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PeerGroupState(const PeerGroupState& from) : PeerGroupState(nullptr, from) {}
  inline PeerGroupState(PeerGroupState&& from) noexcept : PeerGroupState(nullptr, ::std::move(from)) {}
  inline PeerGroupState& operator=(const PeerGroupState& from) {
    CopyFrom(from);
    return *this;
  }
  inline PeerGroupState& operator=(PeerGroupState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PeerGroupState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PeerGroupState>(&PeerGroupState_globals_);
  }
  static constexpr int kIndexInFileMessages = 92;
  friend void swap(PeerGroupState& a, PeerGroupState& b) { a.Swap(&b); }
  inline void Swap(PeerGroupState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PeerGroupState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PeerGroupState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PeerGroupState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PeerGroupState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PeerGroupState& from) { PeerGroupState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PeerGroupState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PeerGroupState"; }

  explicit PeerGroupState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PeerGroupState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PeerGroupState& from);
  PeerGroupState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PeerGroupState&& from) noexcept
      : PeerGroupState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAuthPasswordFieldNumber = 1,
    kDescriptionFieldNumber = 2,
    kPeerGroupNameFieldNumber = 5,
    kLocalAsnFieldNumber = 3,
    kPeerAsnFieldNumber = 4,
    kTypeFieldNumber = 6,
    kRemovePrivateFieldNumber = 7,
    kRouteFlapDampingFieldNumber = 8,
    kSendCommunityFieldNumber = 9,
    kTotalPathsFieldNumber = 10,
    kTotalPrefixesFieldNumber = 11,
  };
  // string auth_password = 1;
  void clear_auth_password() ;
  [[nodiscard]] const ::std::string& auth_password() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_auth_password(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_auth_password();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_auth_password();
  void set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_auth_password() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_auth_password(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_auth_password();

  public:
  // string description = 2;
  void clear_description() ;
  [[nodiscard]] const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // string peer_group_name = 5;
  void clear_peer_group_name() ;
  [[nodiscard]] const ::std::string& peer_group_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group_name();
  void set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group_name();

  public:
  // uint32 local_asn = 3;
  void clear_local_asn() ;
  [[nodiscard]] ::uint32_t local_asn() const;
  void set_local_asn(::uint32_t value);

  private:
  ::uint32_t _internal_local_asn() const;
  void _internal_set_local_asn(::uint32_t value);

  public:
  // uint32 peer_asn = 4;
  void clear_peer_asn() ;
  [[nodiscard]] ::uint32_t peer_asn() const;
  void set_peer_asn(::uint32_t value);

  private:
  ::uint32_t _internal_peer_asn() const;
  void _internal_set_peer_asn(::uint32_t value);

  public:
  // .apipb.PeerType type = 6;
  void clear_type() ;
  [[nodiscard]] ::apipb::PeerType type() const;
  void set_type(::apipb::PeerType value);

  private:
  ::apipb::PeerType _internal_type() const;
  void _internal_set_type(::apipb::PeerType value);

  public:
  // .apipb.RemovePrivate remove_private = 7;
  void clear_remove_private() ;
  [[nodiscard]] ::apipb::RemovePrivate remove_private() const;
  void set_remove_private(::apipb::RemovePrivate value);

  private:
  ::apipb::RemovePrivate _internal_remove_private() const;
  void _internal_set_remove_private(::apipb::RemovePrivate value);

  public:
  // bool route_flap_damping = 8;
  void clear_route_flap_damping() ;
  [[nodiscard]] bool route_flap_damping() const;
  void set_route_flap_damping(bool value);

  private:
  bool _internal_route_flap_damping() const;
  void _internal_set_route_flap_damping(bool value);

  public:
  // uint32 send_community = 9;
  void clear_send_community() ;
  [[nodiscard]] ::uint32_t send_community() const;
  void set_send_community(::uint32_t value);

  private:
  ::uint32_t _internal_send_community() const;
  void _internal_set_send_community(::uint32_t value);

  public:
  // uint32 total_paths = 10;
  void clear_total_paths() ;
  [[nodiscard]] ::uint32_t total_paths() const;
  void set_total_paths(::uint32_t value);

  private:
  ::uint32_t _internal_total_paths() const;
  void _internal_set_total_paths(::uint32_t value);

  public:
  // uint32 total_prefixes = 11;
  void clear_total_prefixes() ;
  [[nodiscard]] ::uint32_t total_prefixes() const;
  void set_total_prefixes(::uint32_t value);

  private:
  ::uint32_t _internal_total_prefixes() const;
  void _internal_set_total_prefixes(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PeerGroupState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          0, 76,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PeerGroupState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr auth_password_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_name_;
    ::uint32_t local_asn_;
    ::uint32_t peer_asn_;
    int type_;
    int remove_private_;
    bool route_flap_damping_;
    ::uint32_t send_community_;
    ::uint32_t total_paths_;
    ::uint32_t total_prefixes_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PeerGroupConf final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PeerGroupConf) */ {
 public:
  inline PeerGroupConf() : PeerGroupConf(nullptr) {}
  ~PeerGroupConf() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PeerGroupConf* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PeerGroupConf));
  }
#endif

  template <typename = void>
  explicit constexpr PeerGroupConf(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PeerGroupConf(const PeerGroupConf& from) : PeerGroupConf(nullptr, from) {}
  inline PeerGroupConf(PeerGroupConf&& from) noexcept : PeerGroupConf(nullptr, ::std::move(from)) {}
  inline PeerGroupConf& operator=(const PeerGroupConf& from) {
    CopyFrom(from);
    return *this;
  }
  inline PeerGroupConf& operator=(PeerGroupConf&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PeerGroupConf& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PeerGroupConf>(&PeerGroupConf_globals_);
  }
  static constexpr int kIndexInFileMessages = 91;
  friend void swap(PeerGroupConf& a, PeerGroupConf& b) { a.Swap(&b); }
  inline void Swap(PeerGroupConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PeerGroupConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PeerGroupConf* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PeerGroupConf>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PeerGroupConf& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PeerGroupConf& from) { PeerGroupConf::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PeerGroupConf* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PeerGroupConf"; }

  explicit PeerGroupConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PeerGroupConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PeerGroupConf& from);
  PeerGroupConf(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PeerGroupConf&& from) noexcept
      : PeerGroupConf(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAuthPasswordFieldNumber = 1,
    kDescriptionFieldNumber = 2,
    kPeerGroupNameFieldNumber = 5,
    kLocalAsnFieldNumber = 3,
    kPeerAsnFieldNumber = 4,
    kTypeFieldNumber = 6,
    kRemovePrivateFieldNumber = 7,
    kRouteFlapDampingFieldNumber = 8,
    kSendCommunityFieldNumber = 9,
  };
  // string auth_password = 1;
  void clear_auth_password() ;
  [[nodiscard]] const ::std::string& auth_password() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_auth_password(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_auth_password();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_auth_password();
  void set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_auth_password() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_auth_password(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_auth_password();

  public:
  // string description = 2;
  void clear_description() ;
  [[nodiscard]] const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // string peer_group_name = 5;
  void clear_peer_group_name() ;
  [[nodiscard]] const ::std::string& peer_group_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group_name();
  void set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group_name();

  public:
  // uint32 local_asn = 3;
  void clear_local_asn() ;
  [[nodiscard]] ::uint32_t local_asn() const;
  void set_local_asn(::uint32_t value);

  private:
  ::uint32_t _internal_local_asn() const;
  void _internal_set_local_asn(::uint32_t value);

  public:
  // uint32 peer_asn = 4;
  void clear_peer_asn() ;
  [[nodiscard]] ::uint32_t peer_asn() const;
  void set_peer_asn(::uint32_t value);

  private:
  ::uint32_t _internal_peer_asn() const;
  void _internal_set_peer_asn(::uint32_t value);

  public:
  // .apipb.PeerType type = 6;
  void clear_type() ;
  [[nodiscard]] ::apipb::PeerType type() const;
  void set_type(::apipb::PeerType value);

  private:
  ::apipb::PeerType _internal_type() const;
  void _internal_set_type(::apipb::PeerType value);

  public:
  // .apipb.RemovePrivate remove_private = 7;
  void clear_remove_private() ;
  [[nodiscard]] ::apipb::RemovePrivate remove_private() const;
  void set_remove_private(::apipb::RemovePrivate value);

  private:
  ::apipb::RemovePrivate _internal_remove_private() const;
  void _internal_set_remove_private(::apipb::RemovePrivate value);

  public:
  // bool route_flap_damping = 8;
  void clear_route_flap_damping() ;
  [[nodiscard]] bool route_flap_damping() const;
  void set_route_flap_damping(bool value);

  private:
  bool _internal_route_flap_damping() const;
  void _internal_set_route_flap_damping(bool value);

  public:
  // uint32 send_community = 9;
  void clear_send_community() ;
  [[nodiscard]] ::uint32_t send_community() const;
  void set_send_community(::uint32_t value);

  private:
  ::uint32_t _internal_send_community() const;
  void _internal_set_send_community(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PeerGroupConf)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 9,
                          0, 75,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PeerGroupConf& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr auth_password_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_name_;
    ::uint32_t local_asn_;
    ::uint32_t peer_asn_;
    int type_;
    int remove_private_;
    bool route_flap_damping_;
    ::uint32_t send_community_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PeerConf final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PeerConf) */ {
 public:
  inline PeerConf() : PeerConf(nullptr) {}
  ~PeerConf() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PeerConf* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PeerConf));
  }
#endif

  template <typename = void>
  explicit constexpr PeerConf(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PeerConf(const PeerConf& from) : PeerConf(nullptr, from) {}
  inline PeerConf(PeerConf&& from) noexcept : PeerConf(nullptr, ::std::move(from)) {}
  inline PeerConf& operator=(const PeerConf& from) {
    CopyFrom(from);
    return *this;
  }
  inline PeerConf& operator=(PeerConf&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PeerConf& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PeerConf>(&PeerConf_globals_);
  }
  static constexpr int kIndexInFileMessages = 90;
  friend void swap(PeerConf& a, PeerConf& b) { a.Swap(&b); }
  inline void Swap(PeerConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PeerConf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PeerConf* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PeerConf>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PeerConf& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PeerConf& from) { PeerConf::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PeerConf* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PeerConf"; }

  explicit PeerConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PeerConf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PeerConf& from);
  PeerConf(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PeerConf&& from) noexcept
      : PeerConf(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAuthPasswordFieldNumber = 1,
    kDescriptionFieldNumber = 2,
    kNeighborAddressFieldNumber = 4,
    kPeerGroupFieldNumber = 6,
    kNeighborInterfaceFieldNumber = 11,
    kVrfFieldNumber = 12,
    kLocalAsnFieldNumber = 3,
    kPeerAsnFieldNumber = 5,
    kTypeFieldNumber = 7,
    kRemovePrivateFieldNumber = 8,
    kSendCommunityFieldNumber = 10,
    kAllowOwnAsnFieldNumber = 13,
    kRouteFlapDampingFieldNumber = 9,
    kReplacePeerAsnFieldNumber = 14,
    kAdminDownFieldNumber = 15,
    kSendSoftwareVersionFieldNumber = 16,
  };
  // string auth_password = 1;
  void clear_auth_password() ;
  [[nodiscard]] const ::std::string& auth_password() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_auth_password(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_auth_password();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_auth_password();
  void set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_auth_password() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_auth_password(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_auth_password();

  public:
  // string description = 2;
  void clear_description() ;
  [[nodiscard]] const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // string neighbor_address = 4;
  void clear_neighbor_address() ;
  [[nodiscard]] const ::std::string& neighbor_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_neighbor_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_neighbor_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_neighbor_address();
  void set_allocated_neighbor_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_neighbor_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_neighbor_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_neighbor_address();

  public:
  // string peer_group = 6;
  void clear_peer_group() ;
  [[nodiscard]] const ::std::string& peer_group() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group();
  void set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // string neighbor_interface = 11;
  void clear_neighbor_interface() ;
  [[nodiscard]] const ::std::string& neighbor_interface() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_neighbor_interface(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_neighbor_interface();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_neighbor_interface();
  void set_allocated_neighbor_interface(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_neighbor_interface() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_neighbor_interface(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_neighbor_interface();

  public:
  // string vrf = 12;
  void clear_vrf() ;
  [[nodiscard]] const ::std::string& vrf() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_vrf(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_vrf();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_vrf();
  void set_allocated_vrf(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_vrf() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_vrf(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_vrf();

  public:
  // uint32 local_asn = 3;
  void clear_local_asn() ;
  [[nodiscard]] ::uint32_t local_asn() const;
  void set_local_asn(::uint32_t value);

  private:
  ::uint32_t _internal_local_asn() const;
  void _internal_set_local_asn(::uint32_t value);

  public:
  // uint32 peer_asn = 5;
  void clear_peer_asn() ;
  [[nodiscard]] ::uint32_t peer_asn() const;
  void set_peer_asn(::uint32_t value);

  private:
  ::uint32_t _internal_peer_asn() const;
  void _internal_set_peer_asn(::uint32_t value);

  public:
  // .apipb.PeerType type = 7;
  void clear_type() ;
  [[nodiscard]] ::apipb::PeerType type() const;
  void set_type(::apipb::PeerType value);

  private:
  ::apipb::PeerType _internal_type() const;
  void _internal_set_type(::apipb::PeerType value);

  public:
  // .apipb.RemovePrivate remove_private = 8;
  void clear_remove_private() ;
  [[nodiscard]] ::apipb::RemovePrivate remove_private() const;
  void set_remove_private(::apipb::RemovePrivate value);

  private:
  ::apipb::RemovePrivate _internal_remove_private() const;
  void _internal_set_remove_private(::apipb::RemovePrivate value);

  public:
  // uint32 send_community = 10;
  void clear_send_community() ;
  [[nodiscard]] ::uint32_t send_community() const;
  void set_send_community(::uint32_t value);

  private:
  ::uint32_t _internal_send_community() const;
  void _internal_set_send_community(::uint32_t value);

  public:
  // uint32 allow_own_asn = 13;
  void clear_allow_own_asn() ;
  [[nodiscard]] ::uint32_t allow_own_asn() const;
  void set_allow_own_asn(::uint32_t value);

  private:
  ::uint32_t _internal_allow_own_asn() const;
  void _internal_set_allow_own_asn(::uint32_t value);

  public:
  // bool route_flap_damping = 9;
  void clear_route_flap_damping() ;
  [[nodiscard]] bool route_flap_damping() const;
  void set_route_flap_damping(bool value);

  private:
  bool _internal_route_flap_damping() const;
  void _internal_set_route_flap_damping(bool value);

  public:
  // bool replace_peer_asn = 14;
  void clear_replace_peer_asn() ;
  [[nodiscard]] bool replace_peer_asn() const;
  void set_replace_peer_asn(bool value);

  private:
  bool _internal_replace_peer_asn() const;
  void _internal_set_replace_peer_asn(bool value);

  public:
  // bool admin_down = 15;
  void clear_admin_down() ;
  [[nodiscard]] bool admin_down() const;
  void set_admin_down(bool value);

  private:
  bool _internal_admin_down() const;
  void _internal_set_admin_down(bool value);

  public:
  // bool send_software_version = 16;
  void clear_send_software_version() ;
  [[nodiscard]] bool send_software_version() const;
  void set_send_software_version(bool value);

  private:
  bool _internal_send_software_version() const;
  void _internal_set_send_software_version(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PeerConf)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 16,
                          0, 110,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PeerConf& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr auth_password_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr neighbor_address_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_;
    ::google::protobuf::internal::ArenaStringPtr neighbor_interface_;
    ::google::protobuf::internal::ArenaStringPtr vrf_;
    ::uint32_t local_asn_;
    ::uint32_t peer_asn_;
    int type_;
    int remove_private_;
    ::uint32_t send_community_;
    ::uint32_t allow_own_asn_;
    bool route_flap_damping_;
    bool replace_peer_asn_;
    bool admin_down_;
    bool send_software_version_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED NexthopAction final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.NexthopAction) */ {
 public:
  inline NexthopAction() : NexthopAction(nullptr) {}
  ~NexthopAction() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(NexthopAction* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(NexthopAction));
  }
#endif

  template <typename = void>
  explicit constexpr NexthopAction(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline NexthopAction(const NexthopAction& from) : NexthopAction(nullptr, from) {}
  inline NexthopAction(NexthopAction&& from) noexcept : NexthopAction(nullptr, ::std::move(from)) {}
  inline NexthopAction& operator=(const NexthopAction& from) {
    CopyFrom(from);
    return *this;
  }
  inline NexthopAction& operator=(NexthopAction&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const NexthopAction& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<NexthopAction>(&NexthopAction_globals_);
  }
  static constexpr int kIndexInFileMessages = 141;
  friend void swap(NexthopAction& a, NexthopAction& b) { a.Swap(&b); }
  inline void Swap(NexthopAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NexthopAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] NexthopAction* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<NexthopAction>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const NexthopAction& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const NexthopAction& from) { NexthopAction::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(NexthopAction* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.NexthopAction"; }

  explicit NexthopAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  NexthopAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NexthopAction& from);
  NexthopAction(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, NexthopAction&& from) noexcept
      : NexthopAction(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kSelfFieldNumber = 2,
    kUnchangedFieldNumber = 3,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // bool self = 2;
  void clear_self() ;
  [[nodiscard]] bool self() const;
  void set_self(bool value);

  private:
  bool _internal_self() const;
  void _internal_set_self(bool value);

  public:
  // bool unchanged = 3;
  void clear_unchanged() ;
  [[nodiscard]] bool unchanged() const;
  void set_unchanged(bool value);

  private:
  bool _internal_unchanged() const;
  void _internal_set_unchanged(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.NexthopAction)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 35,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const NexthopAction& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    bool self_;
    bool unchanged_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MpGracefulRestartState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.MpGracefulRestartState) */ {
 public:
  inline MpGracefulRestartState() : MpGracefulRestartState(nullptr) {}
  ~MpGracefulRestartState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MpGracefulRestartState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MpGracefulRestartState));
  }
#endif

  template <typename = void>
  explicit constexpr MpGracefulRestartState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MpGracefulRestartState(const MpGracefulRestartState& from) : MpGracefulRestartState(nullptr, from) {}
  inline MpGracefulRestartState(MpGracefulRestartState&& from) noexcept : MpGracefulRestartState(nullptr, ::std::move(from)) {}
  inline MpGracefulRestartState& operator=(const MpGracefulRestartState& from) {
    CopyFrom(from);
    return *this;
  }
  inline MpGracefulRestartState& operator=(MpGracefulRestartState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MpGracefulRestartState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MpGracefulRestartState>(&MpGracefulRestartState_globals_);
  }
  static constexpr int kIndexInFileMessages = 107;
  friend void swap(MpGracefulRestartState& a, MpGracefulRestartState& b) { a.Swap(&b); }
  inline void Swap(MpGracefulRestartState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MpGracefulRestartState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MpGracefulRestartState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MpGracefulRestartState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MpGracefulRestartState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MpGracefulRestartState& from) { MpGracefulRestartState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MpGracefulRestartState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.MpGracefulRestartState"; }

  explicit MpGracefulRestartState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MpGracefulRestartState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MpGracefulRestartState& from);
  MpGracefulRestartState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MpGracefulRestartState&& from) noexcept
      : MpGracefulRestartState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
    kReceivedFieldNumber = 2,
    kAdvertisedFieldNumber = 3,
    kEndOfRibReceivedFieldNumber = 4,
    kEndOfRibSentFieldNumber = 5,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // bool received = 2;
  void clear_received() ;
  [[nodiscard]] bool received() const;
  void set_received(bool value);

  private:
  bool _internal_received() const;
  void _internal_set_received(bool value);

  public:
  // bool advertised = 3;
  void clear_advertised() ;
  [[nodiscard]] bool advertised() const;
  void set_advertised(bool value);

  private:
  bool _internal_advertised() const;
  void _internal_set_advertised(bool value);

  public:
  // bool end_of_rib_received = 4;
  void clear_end_of_rib_received() ;
  [[nodiscard]] bool end_of_rib_received() const;
  void set_end_of_rib_received(bool value);

  private:
  bool _internal_end_of_rib_received() const;
  void _internal_set_end_of_rib_received(bool value);

  public:
  // bool end_of_rib_sent = 5;
  void clear_end_of_rib_sent() ;
  [[nodiscard]] bool end_of_rib_sent() const;
  void set_end_of_rib_sent(bool value);

  private:
  bool _internal_end_of_rib_sent() const;
  void _internal_set_end_of_rib_sent(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.MpGracefulRestartState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MpGracefulRestartState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    bool received_;
    bool advertised_;
    bool end_of_rib_received_;
    bool end_of_rib_sent_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MpGracefulRestartConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.MpGracefulRestartConfig) */ {
 public:
  inline MpGracefulRestartConfig() : MpGracefulRestartConfig(nullptr) {}
  ~MpGracefulRestartConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MpGracefulRestartConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MpGracefulRestartConfig));
  }
#endif

  template <typename = void>
  explicit constexpr MpGracefulRestartConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MpGracefulRestartConfig(const MpGracefulRestartConfig& from) : MpGracefulRestartConfig(nullptr, from) {}
  inline MpGracefulRestartConfig(MpGracefulRestartConfig&& from) noexcept : MpGracefulRestartConfig(nullptr, ::std::move(from)) {}
  inline MpGracefulRestartConfig& operator=(const MpGracefulRestartConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline MpGracefulRestartConfig& operator=(MpGracefulRestartConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MpGracefulRestartConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MpGracefulRestartConfig>(&MpGracefulRestartConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 106;
  friend void swap(MpGracefulRestartConfig& a, MpGracefulRestartConfig& b) { a.Swap(&b); }
  inline void Swap(MpGracefulRestartConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MpGracefulRestartConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MpGracefulRestartConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MpGracefulRestartConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MpGracefulRestartConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MpGracefulRestartConfig& from) { MpGracefulRestartConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MpGracefulRestartConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.MpGracefulRestartConfig"; }

  explicit MpGracefulRestartConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MpGracefulRestartConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MpGracefulRestartConfig& from);
  MpGracefulRestartConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MpGracefulRestartConfig&& from) noexcept
      : MpGracefulRestartConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.MpGracefulRestartConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MpGracefulRestartConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Message final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Message) */ {
 public:
  inline Message() : Message(nullptr) {}
  ~Message() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Message* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Message));
  }
#endif

  template <typename = void>
  explicit constexpr Message(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Message(const Message& from) : Message(nullptr, from) {}
  inline Message(Message&& from) noexcept : Message(nullptr, ::std::move(from)) {}
  inline Message& operator=(const Message& from) {
    CopyFrom(from);
    return *this;
  }
  inline Message& operator=(Message&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Message& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Message>(&Message_globals_);
  }
  static constexpr int kIndexInFileMessages = 98;
  friend void swap(Message& a, Message& b) { a.Swap(&b); }
  inline void Swap(Message* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Message* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Message* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Message>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Message& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Message& from) { Message::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Message* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Message"; }

  explicit Message(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Message(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Message& from);
  Message(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Message&& from) noexcept
      : Message(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNotificationFieldNumber = 1,
    kUpdateFieldNumber = 2,
    kOpenFieldNumber = 3,
    kKeepaliveFieldNumber = 4,
    kRefreshFieldNumber = 5,
    kDiscardedFieldNumber = 6,
    kTotalFieldNumber = 7,
    kWithdrawUpdateFieldNumber = 8,
    kWithdrawPrefixFieldNumber = 9,
  };
  // uint64 notification = 1;
  void clear_notification() ;
  [[nodiscard]] ::uint64_t notification() const;
  void set_notification(::uint64_t value);

  private:
  ::uint64_t _internal_notification() const;
  void _internal_set_notification(::uint64_t value);

  public:
  // uint64 update = 2;
  void clear_update() ;
  [[nodiscard]] ::uint64_t update() const;
  void set_update(::uint64_t value);

  private:
  ::uint64_t _internal_update() const;
  void _internal_set_update(::uint64_t value);

  public:
  // uint64 open = 3;
  void clear_open() ;
  [[nodiscard]] ::uint64_t open() const;
  void set_open(::uint64_t value);

  private:
  ::uint64_t _internal_open() const;
  void _internal_set_open(::uint64_t value);

  public:
  // uint64 keepalive = 4;
  void clear_keepalive() ;
  [[nodiscard]] ::uint64_t keepalive() const;
  void set_keepalive(::uint64_t value);

  private:
  ::uint64_t _internal_keepalive() const;
  void _internal_set_keepalive(::uint64_t value);

  public:
  // uint64 refresh = 5;
  void clear_refresh() ;
  [[nodiscard]] ::uint64_t refresh() const;
  void set_refresh(::uint64_t value);

  private:
  ::uint64_t _internal_refresh() const;
  void _internal_set_refresh(::uint64_t value);

  public:
  // uint64 discarded = 6;
  void clear_discarded() ;
  [[nodiscard]] ::uint64_t discarded() const;
  void set_discarded(::uint64_t value);

  private:
  ::uint64_t _internal_discarded() const;
  void _internal_set_discarded(::uint64_t value);

  public:
  // uint64 total = 7;
  void clear_total() ;
  [[nodiscard]] ::uint64_t total() const;
  void set_total(::uint64_t value);

  private:
  ::uint64_t _internal_total() const;
  void _internal_set_total(::uint64_t value);

  public:
  // uint64 withdraw_update = 8;
  void clear_withdraw_update() ;
  [[nodiscard]] ::uint64_t withdraw_update() const;
  void set_withdraw_update(::uint64_t value);

  private:
  ::uint64_t _internal_withdraw_update() const;
  void _internal_set_withdraw_update(::uint64_t value);

  public:
  // uint64 withdraw_prefix = 9;
  void clear_withdraw_prefix() ;
  [[nodiscard]] ::uint64_t withdraw_prefix() const;
  void set_withdraw_prefix(::uint64_t value);

  private:
  ::uint64_t _internal_withdraw_prefix() const;
  void _internal_set_withdraw_prefix(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Message)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 9,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Message& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint64_t notification_;
    ::uint64_t update_;
    ::uint64_t open_;
    ::uint64_t keepalive_;
    ::uint64_t refresh_;
    ::uint64_t discarded_;
    ::uint64_t total_;
    ::uint64_t withdraw_update_;
    ::uint64_t withdraw_prefix_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MedAction final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.MedAction) */ {
 public:
  inline MedAction() : MedAction(nullptr) {}
  ~MedAction() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MedAction* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MedAction));
  }
#endif

  template <typename = void>
  explicit constexpr MedAction(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MedAction(const MedAction& from) : MedAction(nullptr, from) {}
  inline MedAction(MedAction&& from) noexcept : MedAction(nullptr, ::std::move(from)) {}
  inline MedAction& operator=(const MedAction& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedAction& operator=(MedAction&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MedAction& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MedAction>(&MedAction_globals_);
  }
  static constexpr int kIndexInFileMessages = 139;
  friend void swap(MedAction& a, MedAction& b) { a.Swap(&b); }
  inline void Swap(MedAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MedAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MedAction* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MedAction>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MedAction& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MedAction& from) { MedAction::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MedAction* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.MedAction"; }

  explicit MedAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MedAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MedAction& from);
  MedAction(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MedAction&& from) noexcept
      : MedAction(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = MedAction_Type;
  static constexpr Type MOD = MedAction_Type_MOD;
  static constexpr Type REPLACE = MedAction_Type_REPLACE;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return MedAction_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = MedAction_Type_Type_MIN;
  static constexpr Type Type_MAX = MedAction_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = MedAction_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return MedAction_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return MedAction_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return MedAction_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kValueFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // int64 value = 2;
  void clear_value() ;
  [[nodiscard]] ::int64_t value() const;
  void set_value(::int64_t value);

  private:
  ::int64_t _internal_value() const;
  void _internal_set_value(::int64_t value);

  public:
  // .apipb.MedAction.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::MedAction_Type type() const;
  void set_type(::apipb::MedAction_Type value);

  private:
  ::apipb::MedAction_Type _internal_type() const;
  void _internal_set_type(::apipb::MedAction_Type value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.MedAction)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MedAction& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t value_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MatchSet final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.MatchSet) */ {
 public:
  inline MatchSet() : MatchSet(nullptr) {}
  ~MatchSet() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MatchSet* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MatchSet));
  }
#endif

  template <typename = void>
  explicit constexpr MatchSet(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MatchSet(const MatchSet& from) : MatchSet(nullptr, from) {}
  inline MatchSet(MatchSet&& from) noexcept : MatchSet(nullptr, ::std::move(from)) {}
  inline MatchSet& operator=(const MatchSet& from) {
    CopyFrom(from);
    return *this;
  }
  inline MatchSet& operator=(MatchSet&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MatchSet& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MatchSet>(&MatchSet_globals_);
  }
  static constexpr int kIndexInFileMessages = 135;
  friend void swap(MatchSet& a, MatchSet& b) { a.Swap(&b); }
  inline void Swap(MatchSet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MatchSet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MatchSet* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MatchSet>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MatchSet& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MatchSet& from) { MatchSet::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MatchSet* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.MatchSet"; }

  explicit MatchSet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MatchSet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MatchSet& from);
  MatchSet(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MatchSet&& from) noexcept
      : MatchSet(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = MatchSet_Type;
  static constexpr Type ANY = MatchSet_Type_ANY;
  static constexpr Type ALL = MatchSet_Type_ALL;
  static constexpr Type INVERT = MatchSet_Type_INVERT;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return MatchSet_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = MatchSet_Type_Type_MIN;
  static constexpr Type Type_MAX = MatchSet_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = MatchSet_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return MatchSet_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return MatchSet_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return MatchSet_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // string name = 2;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.MatchSet.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::MatchSet_Type type() const;
  void set_type(::apipb::MatchSet_Type value);

  private:
  ::apipb::MatchSet_Type _internal_type() const;
  void _internal_set_type(::apipb::MatchSet_Type value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.MatchSet)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 27,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MatchSet& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED LongLivedGracefulRestartState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.LongLivedGracefulRestartState) */ {
 public:
  inline LongLivedGracefulRestartState() : LongLivedGracefulRestartState(nullptr) {}
  ~LongLivedGracefulRestartState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(LongLivedGracefulRestartState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(LongLivedGracefulRestartState));
  }
#endif

  template <typename = void>
  explicit constexpr LongLivedGracefulRestartState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline LongLivedGracefulRestartState(const LongLivedGracefulRestartState& from) : LongLivedGracefulRestartState(nullptr, from) {}
  inline LongLivedGracefulRestartState(LongLivedGracefulRestartState&& from) noexcept : LongLivedGracefulRestartState(nullptr, ::std::move(from)) {}
  inline LongLivedGracefulRestartState& operator=(const LongLivedGracefulRestartState& from) {
    CopyFrom(from);
    return *this;
  }
  inline LongLivedGracefulRestartState& operator=(LongLivedGracefulRestartState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const LongLivedGracefulRestartState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LongLivedGracefulRestartState>(&LongLivedGracefulRestartState_globals_);
  }
  static constexpr int kIndexInFileMessages = 127;
  friend void swap(LongLivedGracefulRestartState& a, LongLivedGracefulRestartState& b) { a.Swap(&b); }
  inline void Swap(LongLivedGracefulRestartState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LongLivedGracefulRestartState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] LongLivedGracefulRestartState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<LongLivedGracefulRestartState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const LongLivedGracefulRestartState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const LongLivedGracefulRestartState& from) { LongLivedGracefulRestartState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(LongLivedGracefulRestartState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.LongLivedGracefulRestartState"; }

  explicit LongLivedGracefulRestartState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LongLivedGracefulRestartState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LongLivedGracefulRestartState& from);
  LongLivedGracefulRestartState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LongLivedGracefulRestartState&& from) noexcept
      : LongLivedGracefulRestartState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
    kReceivedFieldNumber = 2,
    kAdvertisedFieldNumber = 3,
    kPeerRestartTimerExpiredFieldNumber = 5,
    kPeerRestartTimeFieldNumber = 4,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // bool received = 2;
  void clear_received() ;
  [[nodiscard]] bool received() const;
  void set_received(bool value);

  private:
  bool _internal_received() const;
  void _internal_set_received(bool value);

  public:
  // bool advertised = 3;
  void clear_advertised() ;
  [[nodiscard]] bool advertised() const;
  void set_advertised(bool value);

  private:
  bool _internal_advertised() const;
  void _internal_set_advertised(bool value);

  public:
  // bool peer_restart_timer_expired = 5;
  void clear_peer_restart_timer_expired() ;
  [[nodiscard]] bool peer_restart_timer_expired() const;
  void set_peer_restart_timer_expired(bool value);

  private:
  bool _internal_peer_restart_timer_expired() const;
  void _internal_set_peer_restart_timer_expired(bool value);

  public:
  // uint32 peer_restart_time = 4;
  void clear_peer_restart_time() ;
  [[nodiscard]] ::uint32_t peer_restart_time() const;
  void set_peer_restart_time(::uint32_t value);

  private:
  ::uint32_t _internal_peer_restart_time() const;
  void _internal_set_peer_restart_time(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.LongLivedGracefulRestartState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const LongLivedGracefulRestartState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    bool received_;
    bool advertised_;
    bool peer_restart_timer_expired_;
    ::uint32_t peer_restart_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED LongLivedGracefulRestartConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.LongLivedGracefulRestartConfig) */ {
 public:
  inline LongLivedGracefulRestartConfig() : LongLivedGracefulRestartConfig(nullptr) {}
  ~LongLivedGracefulRestartConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(LongLivedGracefulRestartConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(LongLivedGracefulRestartConfig));
  }
#endif

  template <typename = void>
  explicit constexpr LongLivedGracefulRestartConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline LongLivedGracefulRestartConfig(const LongLivedGracefulRestartConfig& from) : LongLivedGracefulRestartConfig(nullptr, from) {}
  inline LongLivedGracefulRestartConfig(LongLivedGracefulRestartConfig&& from) noexcept : LongLivedGracefulRestartConfig(nullptr, ::std::move(from)) {}
  inline LongLivedGracefulRestartConfig& operator=(const LongLivedGracefulRestartConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline LongLivedGracefulRestartConfig& operator=(LongLivedGracefulRestartConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const LongLivedGracefulRestartConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LongLivedGracefulRestartConfig>(&LongLivedGracefulRestartConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 126;
  friend void swap(LongLivedGracefulRestartConfig& a, LongLivedGracefulRestartConfig& b) { a.Swap(&b); }
  inline void Swap(LongLivedGracefulRestartConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LongLivedGracefulRestartConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] LongLivedGracefulRestartConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<LongLivedGracefulRestartConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const LongLivedGracefulRestartConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const LongLivedGracefulRestartConfig& from) { LongLivedGracefulRestartConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(LongLivedGracefulRestartConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.LongLivedGracefulRestartConfig"; }

  explicit LongLivedGracefulRestartConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LongLivedGracefulRestartConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LongLivedGracefulRestartConfig& from);
  LongLivedGracefulRestartConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LongLivedGracefulRestartConfig&& from) noexcept
      : LongLivedGracefulRestartConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
    kRestartTimeFieldNumber = 2,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // uint32 restart_time = 2;
  void clear_restart_time() ;
  [[nodiscard]] ::uint32_t restart_time() const;
  void set_restart_time(::uint32_t value);

  private:
  ::uint32_t _internal_restart_time() const;
  void _internal_set_restart_time(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.LongLivedGracefulRestartConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const LongLivedGracefulRestartConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    ::uint32_t restart_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED LocalPrefAction final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.LocalPrefAction) */ {
 public:
  inline LocalPrefAction() : LocalPrefAction(nullptr) {}
  ~LocalPrefAction() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(LocalPrefAction* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(LocalPrefAction));
  }
#endif

  template <typename = void>
  explicit constexpr LocalPrefAction(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline LocalPrefAction(const LocalPrefAction& from) : LocalPrefAction(nullptr, from) {}
  inline LocalPrefAction(LocalPrefAction&& from) noexcept : LocalPrefAction(nullptr, ::std::move(from)) {}
  inline LocalPrefAction& operator=(const LocalPrefAction& from) {
    CopyFrom(from);
    return *this;
  }
  inline LocalPrefAction& operator=(LocalPrefAction&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const LocalPrefAction& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LocalPrefAction>(&LocalPrefAction_globals_);
  }
  static constexpr int kIndexInFileMessages = 142;
  friend void swap(LocalPrefAction& a, LocalPrefAction& b) { a.Swap(&b); }
  inline void Swap(LocalPrefAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LocalPrefAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] LocalPrefAction* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<LocalPrefAction>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const LocalPrefAction& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const LocalPrefAction& from) { LocalPrefAction::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(LocalPrefAction* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.LocalPrefAction"; }

  explicit LocalPrefAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LocalPrefAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LocalPrefAction& from);
  LocalPrefAction(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LocalPrefAction&& from) noexcept
      : LocalPrefAction(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kValueFieldNumber = 1,
  };
  // uint32 value = 1;
  void clear_value() ;
  [[nodiscard]] ::uint32_t value() const;
  void set_value(::uint32_t value);

  private:
  ::uint32_t _internal_value() const;
  void _internal_set_value(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.LocalPrefAction)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const LocalPrefAction& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListVrfRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListVrfRequest) */ {
 public:
  inline ListVrfRequest() : ListVrfRequest(nullptr) {}
  ~ListVrfRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListVrfRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListVrfRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListVrfRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListVrfRequest(const ListVrfRequest& from) : ListVrfRequest(nullptr, from) {}
  inline ListVrfRequest(ListVrfRequest&& from) noexcept : ListVrfRequest(nullptr, ::std::move(from)) {}
  inline ListVrfRequest& operator=(const ListVrfRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListVrfRequest& operator=(ListVrfRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListVrfRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListVrfRequest>(&ListVrfRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 42;
  friend void swap(ListVrfRequest& a, ListVrfRequest& b) { a.Swap(&b); }
  inline void Swap(ListVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListVrfRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListVrfRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListVrfRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListVrfRequest& from) { ListVrfRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListVrfRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListVrfRequest"; }

  explicit ListVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListVrfRequest& from);
  ListVrfRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListVrfRequest&& from) noexcept
      : ListVrfRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListVrfRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 33,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListVrfRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListStatementRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListStatementRequest) */ {
 public:
  inline ListStatementRequest() : ListStatementRequest(nullptr) {}
  ~ListStatementRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListStatementRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListStatementRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListStatementRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListStatementRequest(const ListStatementRequest& from) : ListStatementRequest(nullptr, from) {}
  inline ListStatementRequest(ListStatementRequest&& from) noexcept : ListStatementRequest(nullptr, ::std::move(from)) {}
  inline ListStatementRequest& operator=(const ListStatementRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListStatementRequest& operator=(ListStatementRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListStatementRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListStatementRequest>(&ListStatementRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 55;
  friend void swap(ListStatementRequest& a, ListStatementRequest& b) { a.Swap(&b); }
  inline void Swap(ListStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListStatementRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListStatementRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListStatementRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListStatementRequest& from) { ListStatementRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListStatementRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListStatementRequest"; }

  explicit ListStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListStatementRequest& from);
  ListStatementRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListStatementRequest&& from) noexcept
      : ListStatementRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListStatementRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 39,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListStatementRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPolicyRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPolicyRequest) */ {
 public:
  inline ListPolicyRequest() : ListPolicyRequest(nullptr) {}
  ~ListPolicyRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPolicyRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPolicyRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListPolicyRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPolicyRequest(const ListPolicyRequest& from) : ListPolicyRequest(nullptr, from) {}
  inline ListPolicyRequest(ListPolicyRequest&& from) noexcept : ListPolicyRequest(nullptr, ::std::move(from)) {}
  inline ListPolicyRequest& operator=(const ListPolicyRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPolicyRequest& operator=(ListPolicyRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPolicyRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPolicyRequest>(&ListPolicyRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 46;
  friend void swap(ListPolicyRequest& a, ListPolicyRequest& b) { a.Swap(&b); }
  inline void Swap(ListPolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPolicyRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPolicyRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPolicyRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPolicyRequest& from) { ListPolicyRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPolicyRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPolicyRequest"; }

  explicit ListPolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPolicyRequest& from);
  ListPolicyRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPolicyRequest&& from) noexcept
      : ListPolicyRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPolicyRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 36,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPolicyRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPolicyAssignmentRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPolicyAssignmentRequest) */ {
 public:
  inline ListPolicyAssignmentRequest() : ListPolicyAssignmentRequest(nullptr) {}
  ~ListPolicyAssignmentRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPolicyAssignmentRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPolicyAssignmentRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListPolicyAssignmentRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPolicyAssignmentRequest(const ListPolicyAssignmentRequest& from) : ListPolicyAssignmentRequest(nullptr, from) {}
  inline ListPolicyAssignmentRequest(ListPolicyAssignmentRequest&& from) noexcept : ListPolicyAssignmentRequest(nullptr, ::std::move(from)) {}
  inline ListPolicyAssignmentRequest& operator=(const ListPolicyAssignmentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPolicyAssignmentRequest& operator=(ListPolicyAssignmentRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPolicyAssignmentRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPolicyAssignmentRequest>(&ListPolicyAssignmentRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 59;
  friend void swap(ListPolicyAssignmentRequest& a, ListPolicyAssignmentRequest& b) { a.Swap(&b); }
  inline void Swap(ListPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPolicyAssignmentRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPolicyAssignmentRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPolicyAssignmentRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPolicyAssignmentRequest& from) { ListPolicyAssignmentRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPolicyAssignmentRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPolicyAssignmentRequest"; }

  explicit ListPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPolicyAssignmentRequest& from);
  ListPolicyAssignmentRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPolicyAssignmentRequest&& from) noexcept
      : ListPolicyAssignmentRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kDirectionFieldNumber = 2,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.PolicyDirection direction = 2;
  void clear_direction() ;
  [[nodiscard]] ::apipb::PolicyDirection direction() const;
  void set_direction(::apipb::PolicyDirection value);

  private:
  ::apipb::PolicyDirection _internal_direction() const;
  void _internal_set_direction(::apipb::PolicyDirection value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPolicyAssignmentRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 46,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPolicyAssignmentRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int direction_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPeerRequest) */ {
 public:
  inline ListPeerRequest() : ListPeerRequest(nullptr) {}
  ~ListPeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListPeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPeerRequest(const ListPeerRequest& from) : ListPeerRequest(nullptr, from) {}
  inline ListPeerRequest(ListPeerRequest&& from) noexcept : ListPeerRequest(nullptr, ::std::move(from)) {}
  inline ListPeerRequest& operator=(const ListPeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPeerRequest& operator=(ListPeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPeerRequest>(&ListPeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(ListPeerRequest& a, ListPeerRequest& b) { a.Swap(&b); }
  inline void Swap(ListPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPeerRequest& from) { ListPeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPeerRequest"; }

  explicit ListPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPeerRequest& from);
  ListPeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPeerRequest&& from) noexcept
      : ListPeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kEnableAdvertisedFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // bool enableAdvertised = 2;
  void clear_enableadvertised() ;
  [[nodiscard]] bool enableadvertised() const;
  void set_enableadvertised(bool value);

  private:
  bool _internal_enableadvertised() const;
  void _internal_set_enableadvertised(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 37,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    bool enableadvertised_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPeerGroupRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPeerGroupRequest) */ {
 public:
  inline ListPeerGroupRequest() : ListPeerGroupRequest(nullptr) {}
  ~ListPeerGroupRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPeerGroupRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPeerGroupRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListPeerGroupRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPeerGroupRequest(const ListPeerGroupRequest& from) : ListPeerGroupRequest(nullptr, from) {}
  inline ListPeerGroupRequest(ListPeerGroupRequest&& from) noexcept : ListPeerGroupRequest(nullptr, ::std::move(from)) {}
  inline ListPeerGroupRequest& operator=(const ListPeerGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPeerGroupRequest& operator=(ListPeerGroupRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPeerGroupRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPeerGroupRequest>(&ListPeerGroupRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(ListPeerGroupRequest& a, ListPeerGroupRequest& b) { a.Swap(&b); }
  inline void Swap(ListPeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPeerGroupRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPeerGroupRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPeerGroupRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPeerGroupRequest& from) { ListPeerGroupRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPeerGroupRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPeerGroupRequest"; }

  explicit ListPeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPeerGroupRequest& from);
  ListPeerGroupRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPeerGroupRequest&& from) noexcept
      : ListPeerGroupRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerGroupNameFieldNumber = 1,
  };
  // string peer_group_name = 1;
  void clear_peer_group_name() ;
  [[nodiscard]] const ::std::string& peer_group_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group_name();
  void set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPeerGroupRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 50,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPeerGroupRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListDynamicNeighborRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListDynamicNeighborRequest) */ {
 public:
  inline ListDynamicNeighborRequest() : ListDynamicNeighborRequest(nullptr) {}
  ~ListDynamicNeighborRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListDynamicNeighborRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListDynamicNeighborRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListDynamicNeighborRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListDynamicNeighborRequest(const ListDynamicNeighborRequest& from) : ListDynamicNeighborRequest(nullptr, from) {}
  inline ListDynamicNeighborRequest(ListDynamicNeighborRequest&& from) noexcept : ListDynamicNeighborRequest(nullptr, ::std::move(from)) {}
  inline ListDynamicNeighborRequest& operator=(const ListDynamicNeighborRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDynamicNeighborRequest& operator=(ListDynamicNeighborRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListDynamicNeighborRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListDynamicNeighborRequest>(&ListDynamicNeighborRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 29;
  friend void swap(ListDynamicNeighborRequest& a, ListDynamicNeighborRequest& b) { a.Swap(&b); }
  inline void Swap(ListDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListDynamicNeighborRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListDynamicNeighborRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListDynamicNeighborRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListDynamicNeighborRequest& from) { ListDynamicNeighborRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListDynamicNeighborRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListDynamicNeighborRequest"; }

  explicit ListDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListDynamicNeighborRequest& from);
  ListDynamicNeighborRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListDynamicNeighborRequest&& from) noexcept
      : ListDynamicNeighborRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerGroupFieldNumber = 1,
  };
  // string peer_group = 1;
  void clear_peer_group() ;
  [[nodiscard]] const ::std::string& peer_group() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group();
  void set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListDynamicNeighborRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 51,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListDynamicNeighborRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListDefinedSetRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListDefinedSetRequest) */ {
 public:
  inline ListDefinedSetRequest() : ListDefinedSetRequest(nullptr) {}
  ~ListDefinedSetRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListDefinedSetRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListDefinedSetRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListDefinedSetRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListDefinedSetRequest(const ListDefinedSetRequest& from) : ListDefinedSetRequest(nullptr, from) {}
  inline ListDefinedSetRequest(ListDefinedSetRequest&& from) noexcept : ListDefinedSetRequest(nullptr, ::std::move(from)) {}
  inline ListDefinedSetRequest& operator=(const ListDefinedSetRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDefinedSetRequest& operator=(ListDefinedSetRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListDefinedSetRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListDefinedSetRequest>(&ListDefinedSetRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 51;
  friend void swap(ListDefinedSetRequest& a, ListDefinedSetRequest& b) { a.Swap(&b); }
  inline void Swap(ListDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListDefinedSetRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListDefinedSetRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListDefinedSetRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListDefinedSetRequest& from) { ListDefinedSetRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListDefinedSetRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListDefinedSetRequest"; }

  explicit ListDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListDefinedSetRequest& from);
  ListDefinedSetRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListDefinedSetRequest&& from) noexcept
      : ListDefinedSetRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 2,
    kDefinedTypeFieldNumber = 1,
  };
  // string name = 2;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.DefinedType defined_type = 1;
  void clear_defined_type() ;
  [[nodiscard]] ::apipb::DefinedType defined_type() const;
  void set_defined_type(::apipb::DefinedType value);

  private:
  ::apipb::DefinedType _internal_defined_type() const;
  void _internal_set_defined_type(::apipb::DefinedType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListDefinedSetRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 40,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListDefinedSetRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int defined_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListBmpResponse_BmpStation_Conf final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListBmpResponse.BmpStation.Conf) */ {
 public:
  inline ListBmpResponse_BmpStation_Conf() : ListBmpResponse_BmpStation_Conf(nullptr) {}
  ~ListBmpResponse_BmpStation_Conf() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListBmpResponse_BmpStation_Conf));
  }
#endif

  template <typename = void>
  explicit constexpr ListBmpResponse_BmpStation_Conf(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListBmpResponse_BmpStation_Conf(const ListBmpResponse_BmpStation_Conf& from) : ListBmpResponse_BmpStation_Conf(nullptr, from) {}
  inline ListBmpResponse_BmpStation_Conf(ListBmpResponse_BmpStation_Conf&& from) noexcept : ListBmpResponse_BmpStation_Conf(nullptr, ::std::move(from)) {}
  inline ListBmpResponse_BmpStation_Conf& operator=(const ListBmpResponse_BmpStation_Conf& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListBmpResponse_BmpStation_Conf& operator=(ListBmpResponse_BmpStation_Conf&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListBmpResponse_BmpStation_Conf& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListBmpResponse_BmpStation_Conf>(&ListBmpResponse_BmpStation_Conf_globals_);
  }
  static constexpr int kIndexInFileMessages = 77;
  friend void swap(ListBmpResponse_BmpStation_Conf& a, ListBmpResponse_BmpStation_Conf& b) { a.Swap(&b); }
  inline void Swap(ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListBmpResponse_BmpStation_Conf>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListBmpResponse_BmpStation_Conf& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListBmpResponse_BmpStation_Conf& from) { ListBmpResponse_BmpStation_Conf::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListBmpResponse.BmpStation.Conf"; }

  explicit ListBmpResponse_BmpStation_Conf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListBmpResponse_BmpStation_Conf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListBmpResponse_BmpStation_Conf& from);
  ListBmpResponse_BmpStation_Conf(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListBmpResponse_BmpStation_Conf&& from) noexcept
      : ListBmpResponse_BmpStation_Conf(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListBmpResponse.BmpStation.Conf)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 53,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListBmpResponse_BmpStation_Conf& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListBmpRequest final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:apipb.ListBmpRequest) */ {
 public:
  inline ListBmpRequest() : ListBmpRequest(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListBmpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListBmpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListBmpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListBmpRequest(const ListBmpRequest& from) : ListBmpRequest(nullptr, from) {}
  inline ListBmpRequest(ListBmpRequest&& from) noexcept : ListBmpRequest(nullptr, ::std::move(from)) {}
  inline ListBmpRequest& operator=(const ListBmpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListBmpRequest& operator=(ListBmpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListBmpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListBmpRequest>(&ListBmpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 76;
  friend void swap(ListBmpRequest& a, ListBmpRequest& b) { a.Swap(&b); }
  inline void Swap(ListBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListBmpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<ListBmpRequest>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const ListBmpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const ListBmpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListBmpRequest"; }

  explicit ListBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListBmpRequest& from);
  ListBmpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListBmpRequest&& from) noexcept
      : ListBmpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:apipb.ListBmpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IbgpState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.IbgpState) */ {
 public:
  inline IbgpState() : IbgpState(nullptr) {}
  ~IbgpState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IbgpState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IbgpState));
  }
#endif

  template <typename = void>
  explicit constexpr IbgpState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IbgpState(const IbgpState& from) : IbgpState(nullptr, from) {}
  inline IbgpState(IbgpState&& from) noexcept : IbgpState(nullptr, ::std::move(from)) {}
  inline IbgpState& operator=(const IbgpState& from) {
    CopyFrom(from);
    return *this;
  }
  inline IbgpState& operator=(IbgpState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IbgpState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IbgpState>(&IbgpState_globals_);
  }
  static constexpr int kIndexInFileMessages = 120;
  friend void swap(IbgpState& a, IbgpState& b) { a.Swap(&b); }
  inline void Swap(IbgpState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IbgpState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IbgpState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IbgpState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IbgpState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IbgpState& from) { IbgpState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IbgpState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.IbgpState"; }

  explicit IbgpState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IbgpState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IbgpState& from);
  IbgpState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IbgpState&& from) noexcept
      : IbgpState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMaximumPathsFieldNumber = 1,
  };
  // uint32 maximum_paths = 1;
  void clear_maximum_paths() ;
  [[nodiscard]] ::uint32_t maximum_paths() const;
  void set_maximum_paths(::uint32_t value);

  private:
  ::uint32_t _internal_maximum_paths() const;
  void _internal_set_maximum_paths(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.IbgpState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IbgpState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t maximum_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IbgpConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.IbgpConfig) */ {
 public:
  inline IbgpConfig() : IbgpConfig(nullptr) {}
  ~IbgpConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IbgpConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IbgpConfig));
  }
#endif

  template <typename = void>
  explicit constexpr IbgpConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IbgpConfig(const IbgpConfig& from) : IbgpConfig(nullptr, from) {}
  inline IbgpConfig(IbgpConfig&& from) noexcept : IbgpConfig(nullptr, ::std::move(from)) {}
  inline IbgpConfig& operator=(const IbgpConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline IbgpConfig& operator=(IbgpConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IbgpConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IbgpConfig>(&IbgpConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 119;
  friend void swap(IbgpConfig& a, IbgpConfig& b) { a.Swap(&b); }
  inline void Swap(IbgpConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IbgpConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IbgpConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IbgpConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IbgpConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IbgpConfig& from) { IbgpConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IbgpConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.IbgpConfig"; }

  explicit IbgpConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IbgpConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IbgpConfig& from);
  IbgpConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IbgpConfig&& from) noexcept
      : IbgpConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMaximumPathsFieldNumber = 1,
  };
  // uint32 maximum_paths = 1;
  void clear_maximum_paths() ;
  [[nodiscard]] ::uint32_t maximum_paths() const;
  void set_maximum_paths(::uint32_t value);

  private:
  ::uint32_t _internal_maximum_paths() const;
  void _internal_set_maximum_paths(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.IbgpConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IbgpConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t maximum_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GracefulRestart final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.GracefulRestart) */ {
 public:
  inline GracefulRestart() : GracefulRestart(nullptr) {}
  ~GracefulRestart() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GracefulRestart* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GracefulRestart));
  }
#endif

  template <typename = void>
  explicit constexpr GracefulRestart(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GracefulRestart(const GracefulRestart& from) : GracefulRestart(nullptr, from) {}
  inline GracefulRestart(GracefulRestart&& from) noexcept : GracefulRestart(nullptr, ::std::move(from)) {}
  inline GracefulRestart& operator=(const GracefulRestart& from) {
    CopyFrom(from);
    return *this;
  }
  inline GracefulRestart& operator=(GracefulRestart&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GracefulRestart& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GracefulRestart>(&GracefulRestart_globals_);
  }
  static constexpr int kIndexInFileMessages = 105;
  friend void swap(GracefulRestart& a, GracefulRestart& b) { a.Swap(&b); }
  inline void Swap(GracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GracefulRestart* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GracefulRestart>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GracefulRestart& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GracefulRestart& from) { GracefulRestart::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GracefulRestart* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.GracefulRestart"; }

  explicit GracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GracefulRestart& from);
  GracefulRestart(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GracefulRestart&& from) noexcept
      : GracefulRestart(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kModeFieldNumber = 11,
    kRestartTimeFieldNumber = 2,
    kEnabledFieldNumber = 1,
    kHelperOnlyFieldNumber = 3,
    kNotificationEnabledFieldNumber = 5,
    kLonglivedEnabledFieldNumber = 6,
    kDeferralTimeFieldNumber = 4,
    kStaleRoutesTimeFieldNumber = 7,
    kPeerRestartTimeFieldNumber = 8,
    kPeerRestartingFieldNumber = 9,
    kLocalRestartingFieldNumber = 10,
  };
  // string mode = 11;
  void clear_mode() ;
  [[nodiscard]] const ::std::string& mode() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_mode(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_mode();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_mode();
  void set_allocated_mode(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_mode() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_mode(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_mode();

  public:
  // uint32 restart_time = 2;
  void clear_restart_time() ;
  [[nodiscard]] ::uint32_t restart_time() const;
  void set_restart_time(::uint32_t value);

  private:
  ::uint32_t _internal_restart_time() const;
  void _internal_set_restart_time(::uint32_t value);

  public:
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // bool helper_only = 3;
  void clear_helper_only() ;
  [[nodiscard]] bool helper_only() const;
  void set_helper_only(bool value);

  private:
  bool _internal_helper_only() const;
  void _internal_set_helper_only(bool value);

  public:
  // bool notification_enabled = 5;
  void clear_notification_enabled() ;
  [[nodiscard]] bool notification_enabled() const;
  void set_notification_enabled(bool value);

  private:
  bool _internal_notification_enabled() const;
  void _internal_set_notification_enabled(bool value);

  public:
  // bool longlived_enabled = 6;
  void clear_longlived_enabled() ;
  [[nodiscard]] bool longlived_enabled() const;
  void set_longlived_enabled(bool value);

  private:
  bool _internal_longlived_enabled() const;
  void _internal_set_longlived_enabled(bool value);

  public:
  // uint32 deferral_time = 4;
  void clear_deferral_time() ;
  [[nodiscard]] ::uint32_t deferral_time() const;
  void set_deferral_time(::uint32_t value);

  private:
  ::uint32_t _internal_deferral_time() const;
  void _internal_set_deferral_time(::uint32_t value);

  public:
  // uint32 stale_routes_time = 7;
  void clear_stale_routes_time() ;
  [[nodiscard]] ::uint32_t stale_routes_time() const;
  void set_stale_routes_time(::uint32_t value);

  private:
  ::uint32_t _internal_stale_routes_time() const;
  void _internal_set_stale_routes_time(::uint32_t value);

  public:
  // uint32 peer_restart_time = 8;
  void clear_peer_restart_time() ;
  [[nodiscard]] ::uint32_t peer_restart_time() const;
  void set_peer_restart_time(::uint32_t value);

  private:
  ::uint32_t _internal_peer_restart_time() const;
  void _internal_set_peer_restart_time(::uint32_t value);

  public:
  // bool peer_restarting = 9;
  void clear_peer_restarting() ;
  [[nodiscard]] bool peer_restarting() const;
  void set_peer_restarting(bool value);

  private:
  bool _internal_peer_restarting() const;
  void _internal_set_peer_restarting(bool value);

  public:
  // bool local_restarting = 10;
  void clear_local_restarting() ;
  [[nodiscard]] bool local_restarting() const;
  void set_local_restarting(bool value);

  private:
  bool _internal_local_restarting() const;
  void _internal_set_local_restarting(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.GracefulRestart)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          0, 42,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GracefulRestart& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr mode_;
    ::uint32_t restart_time_;
    bool enabled_;
    bool helper_only_;
    bool notification_enabled_;
    bool longlived_enabled_;
    ::uint32_t deferral_time_;
    ::uint32_t stale_routes_time_;
    ::uint32_t peer_restart_time_;
    bool peer_restarting_;
    bool local_restarting_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetTableResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.GetTableResponse) */ {
 public:
  inline GetTableResponse() : GetTableResponse(nullptr) {}
  ~GetTableResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetTableResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetTableResponse));
  }
#endif

  template <typename = void>
  explicit constexpr GetTableResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetTableResponse(const GetTableResponse& from) : GetTableResponse(nullptr, from) {}
  inline GetTableResponse(GetTableResponse&& from) noexcept : GetTableResponse(nullptr, ::std::move(from)) {}
  inline GetTableResponse& operator=(const GetTableResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetTableResponse& operator=(GetTableResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetTableResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetTableResponse>(&GetTableResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 39;
  friend void swap(GetTableResponse& a, GetTableResponse& b) { a.Swap(&b); }
  inline void Swap(GetTableResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetTableResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetTableResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetTableResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetTableResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetTableResponse& from) { GetTableResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetTableResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.GetTableResponse"; }

  explicit GetTableResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetTableResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetTableResponse& from);
  GetTableResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetTableResponse&& from) noexcept
      : GetTableResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNumDestinationFieldNumber = 1,
    kNumPathFieldNumber = 2,
    kNumAcceptedFieldNumber = 3,
  };
  // uint64 num_destination = 1;
  void clear_num_destination() ;
  [[nodiscard]] ::uint64_t num_destination() const;
  void set_num_destination(::uint64_t value);

  private:
  ::uint64_t _internal_num_destination() const;
  void _internal_set_num_destination(::uint64_t value);

  public:
  // uint64 num_path = 2;
  void clear_num_path() ;
  [[nodiscard]] ::uint64_t num_path() const;
  void set_num_path(::uint64_t value);

  private:
  ::uint64_t _internal_num_path() const;
  void _internal_set_num_path(::uint64_t value);

  public:
  // uint64 num_accepted = 3;
  void clear_num_accepted() ;
  [[nodiscard]] ::uint64_t num_accepted() const;
  void set_num_accepted(::uint64_t value);

  private:
  ::uint64_t _internal_num_accepted() const;
  void _internal_set_num_accepted(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.GetTableResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetTableResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint64_t num_destination_;
    ::uint64_t num_path_;
    ::uint64_t num_accepted_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetBgpRequest final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:apipb.GetBgpRequest) */ {
 public:
  inline GetBgpRequest() : GetBgpRequest(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetBgpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetBgpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr GetBgpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetBgpRequest(const GetBgpRequest& from) : GetBgpRequest(nullptr, from) {}
  inline GetBgpRequest(GetBgpRequest&& from) noexcept : GetBgpRequest(nullptr, ::std::move(from)) {}
  inline GetBgpRequest& operator=(const GetBgpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetBgpRequest& operator=(GetBgpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetBgpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetBgpRequest>(&GetBgpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(GetBgpRequest& a, GetBgpRequest& b) { a.Swap(&b); }
  inline void Swap(GetBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetBgpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<GetBgpRequest>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const GetBgpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const GetBgpRequest& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.GetBgpRequest"; }

  explicit GetBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetBgpRequest& from);
  GetBgpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetBgpRequest&& from) noexcept
      : GetBgpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:apipb.GetBgpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Family final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Family) */ {
 public:
  inline Family() : Family(nullptr) {}
  ~Family() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Family* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Family));
  }
#endif

  template <typename = void>
  explicit constexpr Family(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Family(const Family& from) : Family(nullptr, from) {}
  inline Family(Family&& from) noexcept : Family(nullptr, ::std::move(from)) {}
  inline Family& operator=(const Family& from) {
    CopyFrom(from);
    return *this;
  }
  inline Family& operator=(Family&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Family& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Family>(&Family_globals_);
  }
  static constexpr int kIndexInFileMessages = 81;
  friend void swap(Family& a, Family& b) { a.Swap(&b); }
  inline void Swap(Family* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Family* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Family* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Family>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Family& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Family& from) { Family::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Family* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Family"; }

  explicit Family(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Family(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Family& from);
  Family(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Family&& from) noexcept
      : Family(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Afi = Family_Afi;
  static constexpr Afi AFI_UNKNOWN = Family_Afi_AFI_UNKNOWN;
  static constexpr Afi AFI_IP = Family_Afi_AFI_IP;
  static constexpr Afi AFI_IP6 = Family_Afi_AFI_IP6;
  static constexpr Afi AFI_L2VPN = Family_Afi_AFI_L2VPN;
  static constexpr Afi AFI_LS = Family_Afi_AFI_LS;
  static constexpr Afi AFI_OPAQUE = Family_Afi_AFI_OPAQUE;
  [[nodiscard]] static inline bool Afi_IsValid(int value) {
    return Family_Afi_IsValid(value);
  }
  static constexpr Afi Afi_MIN = Family_Afi_Afi_MIN;
  static constexpr Afi Afi_MAX = Family_Afi_Afi_MAX;
  static constexpr int Afi_ARRAYSIZE = Family_Afi_Afi_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Afi_descriptor() {
    return Family_Afi_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Afi_Name(T value) {
    return Family_Afi_Name(value);
  }
  [[nodiscard]] static inline bool Afi_Parse(
      ::absl::string_view name, Afi* PROTOBUF_NONNULL value) {
    return Family_Afi_Parse(name, value);
  }
  using Safi = Family_Safi;
  static constexpr Safi SAFI_UNKNOWN = Family_Safi_SAFI_UNKNOWN;
  static constexpr Safi SAFI_UNICAST = Family_Safi_SAFI_UNICAST;
  static constexpr Safi SAFI_MULTICAST = Family_Safi_SAFI_MULTICAST;
  static constexpr Safi SAFI_MPLS_LABEL = Family_Safi_SAFI_MPLS_LABEL;
  static constexpr Safi SAFI_ENCAPSULATION = Family_Safi_SAFI_ENCAPSULATION;
  static constexpr Safi SAFI_VPLS = Family_Safi_SAFI_VPLS;
  static constexpr Safi SAFI_EVPN = Family_Safi_SAFI_EVPN;
  static constexpr Safi SAFI_LS = Family_Safi_SAFI_LS;
  static constexpr Safi SAFI_SR_POLICY = Family_Safi_SAFI_SR_POLICY;
  static constexpr Safi SAFI_MUP = Family_Safi_SAFI_MUP;
  static constexpr Safi SAFI_MPLS_VPN = Family_Safi_SAFI_MPLS_VPN;
  static constexpr Safi SAFI_MPLS_VPN_MULTICAST = Family_Safi_SAFI_MPLS_VPN_MULTICAST;
  static constexpr Safi SAFI_ROUTE_TARGET_CONSTRAINTS = Family_Safi_SAFI_ROUTE_TARGET_CONSTRAINTS;
  static constexpr Safi SAFI_FLOW_SPEC_UNICAST = Family_Safi_SAFI_FLOW_SPEC_UNICAST;
  static constexpr Safi SAFI_FLOW_SPEC_VPN = Family_Safi_SAFI_FLOW_SPEC_VPN;
  static constexpr Safi SAFI_KEY_VALUE = Family_Safi_SAFI_KEY_VALUE;
  [[nodiscard]] static inline bool Safi_IsValid(int value) {
    return Family_Safi_IsValid(value);
  }
  static constexpr Safi Safi_MIN = Family_Safi_Safi_MIN;
  static constexpr Safi Safi_MAX = Family_Safi_Safi_MAX;
  static constexpr int Safi_ARRAYSIZE = Family_Safi_Safi_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Safi_descriptor() {
    return Family_Safi_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Safi_Name(T value) {
    return Family_Safi_Name(value);
  }
  [[nodiscard]] static inline bool Safi_Parse(
      ::absl::string_view name, Safi* PROTOBUF_NONNULL value) {
    return Family_Safi_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kAfiFieldNumber = 1,
    kSafiFieldNumber = 2,
  };
  // .apipb.Family.Afi afi = 1;
  void clear_afi() ;
  [[nodiscard]] ::apipb::Family_Afi afi() const;
  void set_afi(::apipb::Family_Afi value);

  private:
  ::apipb::Family_Afi _internal_afi() const;
  void _internal_set_afi(::apipb::Family_Afi value);

  public:
  // .apipb.Family.Safi safi = 2;
  void clear_safi() ;
  [[nodiscard]] ::apipb::Family_Safi safi() const;
  void set_safi(::apipb::Family_Safi value);

  private:
  ::apipb::Family_Safi _internal_safi() const;
  void _internal_set_safi(::apipb::Family_Safi value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Family)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Family& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int afi_;
    int safi_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EnableZebraRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EnableZebraRequest) */ {
 public:
  inline EnableZebraRequest() : EnableZebraRequest(nullptr) {}
  ~EnableZebraRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EnableZebraRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EnableZebraRequest));
  }
#endif

  template <typename = void>
  explicit constexpr EnableZebraRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EnableZebraRequest(const EnableZebraRequest& from) : EnableZebraRequest(nullptr, from) {}
  inline EnableZebraRequest(EnableZebraRequest&& from) noexcept : EnableZebraRequest(nullptr, ::std::move(from)) {}
  inline EnableZebraRequest& operator=(const EnableZebraRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableZebraRequest& operator=(EnableZebraRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EnableZebraRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EnableZebraRequest>(&EnableZebraRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 71;
  friend void swap(EnableZebraRequest& a, EnableZebraRequest& b) { a.Swap(&b); }
  inline void Swap(EnableZebraRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableZebraRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EnableZebraRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EnableZebraRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EnableZebraRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EnableZebraRequest& from) { EnableZebraRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EnableZebraRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EnableZebraRequest"; }

  explicit EnableZebraRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EnableZebraRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EnableZebraRequest& from);
  EnableZebraRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EnableZebraRequest&& from) noexcept
      : EnableZebraRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRouteTypesFieldNumber = 2,
    kUrlFieldNumber = 1,
    kSoftwareNameFieldNumber = 7,
    kVersionFieldNumber = 3,
    kNexthopTriggerEnableFieldNumber = 4,
    kNexthopTriggerDelayFieldNumber = 5,
    kMplsLabelRangeSizeFieldNumber = 6,
  };
  // repeated string route_types = 2;
  [[nodiscard]] int route_types_size()
      const;
  private:
  int _internal_route_types_size() const;

  public:
  void clear_route_types() ;
  [[nodiscard]] const ::std::string& route_types(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_route_types(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_route_types(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_route_types();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_route_types(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      route_types() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_route_types();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_route_types() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_route_types();

  public:
  // string url = 1;
  void clear_url() ;
  [[nodiscard]] const ::std::string& url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_url();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_url();
  void set_allocated_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_url();

  public:
  // string software_name = 7;
  void clear_software_name() ;
  [[nodiscard]] const ::std::string& software_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_software_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_software_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_software_name();
  void set_allocated_software_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_software_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_software_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_software_name();

  public:
  // uint32 version = 3;
  void clear_version() ;
  [[nodiscard]] ::uint32_t version() const;
  void set_version(::uint32_t value);

  private:
  ::uint32_t _internal_version() const;
  void _internal_set_version(::uint32_t value);

  public:
  // bool nexthop_trigger_enable = 4;
  void clear_nexthop_trigger_enable() ;
  [[nodiscard]] bool nexthop_trigger_enable() const;
  void set_nexthop_trigger_enable(bool value);

  private:
  bool _internal_nexthop_trigger_enable() const;
  void _internal_set_nexthop_trigger_enable(bool value);

  public:
  // uint32 nexthop_trigger_delay = 5;
  void clear_nexthop_trigger_delay() ;
  [[nodiscard]] ::uint32_t nexthop_trigger_delay() const;
  void set_nexthop_trigger_delay(::uint32_t value);

  private:
  ::uint32_t _internal_nexthop_trigger_delay() const;
  void _internal_set_nexthop_trigger_delay(::uint32_t value);

  public:
  // uint32 mpls_label_range_size = 6;
  void clear_mpls_label_range_size() ;
  [[nodiscard]] ::uint32_t mpls_label_range_size() const;
  void set_mpls_label_range_size(::uint32_t value);

  private:
  ::uint32_t _internal_mpls_label_range_size() const;
  void _internal_set_mpls_label_range_size(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EnableZebraRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          0, 60,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EnableZebraRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> route_types_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    ::google::protobuf::internal::ArenaStringPtr software_name_;
    ::uint32_t version_;
    bool nexthop_trigger_enable_;
    ::uint32_t nexthop_trigger_delay_;
    ::uint32_t mpls_label_range_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EnableRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EnableRpkiRequest) */ {
 public:
  inline EnableRpkiRequest() : EnableRpkiRequest(nullptr) {}
  ~EnableRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EnableRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EnableRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr EnableRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EnableRpkiRequest(const EnableRpkiRequest& from) : EnableRpkiRequest(nullptr, from) {}
  inline EnableRpkiRequest(EnableRpkiRequest&& from) noexcept : EnableRpkiRequest(nullptr, ::std::move(from)) {}
  inline EnableRpkiRequest& operator=(const EnableRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableRpkiRequest& operator=(EnableRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EnableRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EnableRpkiRequest>(&EnableRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 66;
  friend void swap(EnableRpkiRequest& a, EnableRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(EnableRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EnableRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EnableRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EnableRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EnableRpkiRequest& from) { EnableRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EnableRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EnableRpkiRequest"; }

  explicit EnableRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EnableRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EnableRpkiRequest& from);
  EnableRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EnableRpkiRequest&& from) noexcept
      : EnableRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EnableRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 39,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EnableRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EnablePeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EnablePeerRequest) */ {
 public:
  inline EnablePeerRequest() : EnablePeerRequest(nullptr) {}
  ~EnablePeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EnablePeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EnablePeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr EnablePeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EnablePeerRequest(const EnablePeerRequest& from) : EnablePeerRequest(nullptr, from) {}
  inline EnablePeerRequest(EnablePeerRequest&& from) noexcept : EnablePeerRequest(nullptr, ::std::move(from)) {}
  inline EnablePeerRequest& operator=(const EnablePeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnablePeerRequest& operator=(EnablePeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EnablePeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EnablePeerRequest>(&EnablePeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(EnablePeerRequest& a, EnablePeerRequest& b) { a.Swap(&b); }
  inline void Swap(EnablePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnablePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EnablePeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EnablePeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EnablePeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EnablePeerRequest& from) { EnablePeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EnablePeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EnablePeerRequest"; }

  explicit EnablePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EnablePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EnablePeerRequest& from);
  EnablePeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EnablePeerRequest&& from) noexcept
      : EnablePeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // @@protoc_insertion_point(class_scope:apipb.EnablePeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 39,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EnablePeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EnableMrtRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EnableMrtRequest) */ {
 public:
  inline EnableMrtRequest() : EnableMrtRequest(nullptr) {}
  ~EnableMrtRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EnableMrtRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EnableMrtRequest));
  }
#endif

  template <typename = void>
  explicit constexpr EnableMrtRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EnableMrtRequest(const EnableMrtRequest& from) : EnableMrtRequest(nullptr, from) {}
  inline EnableMrtRequest(EnableMrtRequest&& from) noexcept : EnableMrtRequest(nullptr, ::std::move(from)) {}
  inline EnableMrtRequest& operator=(const EnableMrtRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMrtRequest& operator=(EnableMrtRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EnableMrtRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EnableMrtRequest>(&EnableMrtRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 72;
  friend void swap(EnableMrtRequest& a, EnableMrtRequest& b) { a.Swap(&b); }
  inline void Swap(EnableMrtRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMrtRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EnableMrtRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EnableMrtRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EnableMrtRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EnableMrtRequest& from) { EnableMrtRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EnableMrtRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EnableMrtRequest"; }

  explicit EnableMrtRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EnableMrtRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EnableMrtRequest& from);
  EnableMrtRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EnableMrtRequest&& from) noexcept
      : EnableMrtRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using DumpType = EnableMrtRequest_DumpType;
  static constexpr DumpType UPDATES = EnableMrtRequest_DumpType_UPDATES;
  static constexpr DumpType TABLE = EnableMrtRequest_DumpType_TABLE;
  [[nodiscard]] static inline bool DumpType_IsValid(int value) {
    return EnableMrtRequest_DumpType_IsValid(value);
  }
  static constexpr DumpType DumpType_MIN = EnableMrtRequest_DumpType_DumpType_MIN;
  static constexpr DumpType DumpType_MAX = EnableMrtRequest_DumpType_DumpType_MAX;
  static constexpr int DumpType_ARRAYSIZE = EnableMrtRequest_DumpType_DumpType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL DumpType_descriptor() {
    return EnableMrtRequest_DumpType_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& DumpType_Name(T value) {
    return EnableMrtRequest_DumpType_Name(value);
  }
  [[nodiscard]] static inline bool DumpType_Parse(
      ::absl::string_view name, DumpType* PROTOBUF_NONNULL value) {
    return EnableMrtRequest_DumpType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kFilenameFieldNumber = 2,
    kDumpIntervalFieldNumber = 3,
    kRotationIntervalFieldNumber = 4,
    kTypeFieldNumber = 1,
  };
  // string filename = 2;
  void clear_filename() ;
  [[nodiscard]] const ::std::string& filename() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filename(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filename();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filename();
  void set_allocated_filename(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filename() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filename(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filename();

  public:
  // uint64 dump_interval = 3;
  void clear_dump_interval() ;
  [[nodiscard]] ::uint64_t dump_interval() const;
  void set_dump_interval(::uint64_t value);

  private:
  ::uint64_t _internal_dump_interval() const;
  void _internal_set_dump_interval(::uint64_t value);

  public:
  // uint64 rotation_interval = 4;
  void clear_rotation_interval() ;
  [[nodiscard]] ::uint64_t rotation_interval() const;
  void set_rotation_interval(::uint64_t value);

  private:
  ::uint64_t _internal_rotation_interval() const;
  void _internal_set_rotation_interval(::uint64_t value);

  public:
  // .apipb.EnableMrtRequest.DumpType type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::EnableMrtRequest_DumpType type() const;
  void set_type(::apipb::EnableMrtRequest_DumpType value);

  private:
  ::apipb::EnableMrtRequest_DumpType _internal_type() const;
  void _internal_set_type(::apipb::EnableMrtRequest_DumpType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EnableMrtRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 39,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EnableMrtRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr filename_;
    ::uint64_t dump_interval_;
    ::uint64_t rotation_interval_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EbgpState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EbgpState) */ {
 public:
  inline EbgpState() : EbgpState(nullptr) {}
  ~EbgpState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EbgpState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EbgpState));
  }
#endif

  template <typename = void>
  explicit constexpr EbgpState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EbgpState(const EbgpState& from) : EbgpState(nullptr, from) {}
  inline EbgpState(EbgpState&& from) noexcept : EbgpState(nullptr, ::std::move(from)) {}
  inline EbgpState& operator=(const EbgpState& from) {
    CopyFrom(from);
    return *this;
  }
  inline EbgpState& operator=(EbgpState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EbgpState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EbgpState>(&EbgpState_globals_);
  }
  static constexpr int kIndexInFileMessages = 117;
  friend void swap(EbgpState& a, EbgpState& b) { a.Swap(&b); }
  inline void Swap(EbgpState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EbgpState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EbgpState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EbgpState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EbgpState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EbgpState& from) { EbgpState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EbgpState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EbgpState"; }

  explicit EbgpState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EbgpState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EbgpState& from);
  EbgpState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EbgpState&& from) noexcept
      : EbgpState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAllowMultipleAsnFieldNumber = 1,
    kMaximumPathsFieldNumber = 2,
  };
  // bool allow_multiple_asn = 1;
  void clear_allow_multiple_asn() ;
  [[nodiscard]] bool allow_multiple_asn() const;
  void set_allow_multiple_asn(bool value);

  private:
  bool _internal_allow_multiple_asn() const;
  void _internal_set_allow_multiple_asn(bool value);

  public:
  // uint32 maximum_paths = 2;
  void clear_maximum_paths() ;
  [[nodiscard]] ::uint32_t maximum_paths() const;
  void set_maximum_paths(::uint32_t value);

  private:
  ::uint32_t _internal_maximum_paths() const;
  void _internal_set_maximum_paths(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EbgpState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EbgpState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool allow_multiple_asn_;
    ::uint32_t maximum_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EbgpMultihop final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EbgpMultihop) */ {
 public:
  inline EbgpMultihop() : EbgpMultihop(nullptr) {}
  ~EbgpMultihop() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EbgpMultihop* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EbgpMultihop));
  }
#endif

  template <typename = void>
  explicit constexpr EbgpMultihop(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EbgpMultihop(const EbgpMultihop& from) : EbgpMultihop(nullptr, from) {}
  inline EbgpMultihop(EbgpMultihop&& from) noexcept : EbgpMultihop(nullptr, ::std::move(from)) {}
  inline EbgpMultihop& operator=(const EbgpMultihop& from) {
    CopyFrom(from);
    return *this;
  }
  inline EbgpMultihop& operator=(EbgpMultihop&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EbgpMultihop& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EbgpMultihop>(&EbgpMultihop_globals_);
  }
  static constexpr int kIndexInFileMessages = 94;
  friend void swap(EbgpMultihop& a, EbgpMultihop& b) { a.Swap(&b); }
  inline void Swap(EbgpMultihop* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EbgpMultihop* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EbgpMultihop* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EbgpMultihop>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EbgpMultihop& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EbgpMultihop& from) { EbgpMultihop::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EbgpMultihop* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EbgpMultihop"; }

  explicit EbgpMultihop(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EbgpMultihop(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EbgpMultihop& from);
  EbgpMultihop(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EbgpMultihop&& from) noexcept
      : EbgpMultihop(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEnabledFieldNumber = 1,
    kMultihopTtlFieldNumber = 2,
  };
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // uint32 multihop_ttl = 2;
  void clear_multihop_ttl() ;
  [[nodiscard]] ::uint32_t multihop_ttl() const;
  void set_multihop_ttl(::uint32_t value);

  private:
  ::uint32_t _internal_multihop_ttl() const;
  void _internal_set_multihop_ttl(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EbgpMultihop)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EbgpMultihop& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool enabled_;
    ::uint32_t multihop_ttl_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EbgpConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.EbgpConfig) */ {
 public:
  inline EbgpConfig() : EbgpConfig(nullptr) {}
  ~EbgpConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EbgpConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EbgpConfig));
  }
#endif

  template <typename = void>
  explicit constexpr EbgpConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EbgpConfig(const EbgpConfig& from) : EbgpConfig(nullptr, from) {}
  inline EbgpConfig(EbgpConfig&& from) noexcept : EbgpConfig(nullptr, ::std::move(from)) {}
  inline EbgpConfig& operator=(const EbgpConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline EbgpConfig& operator=(EbgpConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EbgpConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EbgpConfig>(&EbgpConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 116;
  friend void swap(EbgpConfig& a, EbgpConfig& b) { a.Swap(&b); }
  inline void Swap(EbgpConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EbgpConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] EbgpConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EbgpConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EbgpConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EbgpConfig& from) { EbgpConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EbgpConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.EbgpConfig"; }

  explicit EbgpConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EbgpConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EbgpConfig& from);
  EbgpConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EbgpConfig&& from) noexcept
      : EbgpConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAllowMultipleAsnFieldNumber = 1,
    kMaximumPathsFieldNumber = 2,
  };
  // bool allow_multiple_asn = 1;
  void clear_allow_multiple_asn() ;
  [[nodiscard]] bool allow_multiple_asn() const;
  void set_allow_multiple_asn(bool value);

  private:
  bool _internal_allow_multiple_asn() const;
  void _internal_set_allow_multiple_asn(bool value);

  public:
  // uint32 maximum_paths = 2;
  void clear_maximum_paths() ;
  [[nodiscard]] ::uint32_t maximum_paths() const;
  void set_maximum_paths(::uint32_t value);

  private:
  ::uint32_t _internal_maximum_paths() const;
  void _internal_set_maximum_paths(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.EbgpConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EbgpConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool allow_multiple_asn_;
    ::uint32_t maximum_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DynamicNeighbor final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DynamicNeighbor) */ {
 public:
  inline DynamicNeighbor() : DynamicNeighbor(nullptr) {}
  ~DynamicNeighbor() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DynamicNeighbor* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DynamicNeighbor));
  }
#endif

  template <typename = void>
  explicit constexpr DynamicNeighbor(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DynamicNeighbor(const DynamicNeighbor& from) : DynamicNeighbor(nullptr, from) {}
  inline DynamicNeighbor(DynamicNeighbor&& from) noexcept : DynamicNeighbor(nullptr, ::std::move(from)) {}
  inline DynamicNeighbor& operator=(const DynamicNeighbor& from) {
    CopyFrom(from);
    return *this;
  }
  inline DynamicNeighbor& operator=(DynamicNeighbor&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DynamicNeighbor& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DynamicNeighbor>(&DynamicNeighbor_globals_);
  }
  static constexpr int kIndexInFileMessages = 87;
  friend void swap(DynamicNeighbor& a, DynamicNeighbor& b) { a.Swap(&b); }
  inline void Swap(DynamicNeighbor* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DynamicNeighbor* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DynamicNeighbor* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DynamicNeighbor>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DynamicNeighbor& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DynamicNeighbor& from) { DynamicNeighbor::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DynamicNeighbor* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DynamicNeighbor"; }

  explicit DynamicNeighbor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DynamicNeighbor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DynamicNeighbor& from);
  DynamicNeighbor(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DynamicNeighbor&& from) noexcept
      : DynamicNeighbor(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPrefixFieldNumber = 1,
    kPeerGroupFieldNumber = 2,
  };
  // string prefix = 1;
  void clear_prefix() ;
  [[nodiscard]] const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // string peer_group = 2;
  void clear_peer_group() ;
  [[nodiscard]] const ::std::string& peer_group() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group();
  void set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DynamicNeighbor)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 46,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DynamicNeighbor& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DisableRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DisableRpkiRequest) */ {
 public:
  inline DisableRpkiRequest() : DisableRpkiRequest(nullptr) {}
  ~DisableRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DisableRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DisableRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DisableRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DisableRpkiRequest(const DisableRpkiRequest& from) : DisableRpkiRequest(nullptr, from) {}
  inline DisableRpkiRequest(DisableRpkiRequest&& from) noexcept : DisableRpkiRequest(nullptr, ::std::move(from)) {}
  inline DisableRpkiRequest& operator=(const DisableRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DisableRpkiRequest& operator=(DisableRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DisableRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DisableRpkiRequest>(&DisableRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 67;
  friend void swap(DisableRpkiRequest& a, DisableRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(DisableRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DisableRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DisableRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DisableRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DisableRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DisableRpkiRequest& from) { DisableRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DisableRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DisableRpkiRequest"; }

  explicit DisableRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DisableRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DisableRpkiRequest& from);
  DisableRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DisableRpkiRequest&& from) noexcept
      : DisableRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DisableRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 40,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DisableRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DisablePeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DisablePeerRequest) */ {
 public:
  inline DisablePeerRequest() : DisablePeerRequest(nullptr) {}
  ~DisablePeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DisablePeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DisablePeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DisablePeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DisablePeerRequest(const DisablePeerRequest& from) : DisablePeerRequest(nullptr, from) {}
  inline DisablePeerRequest(DisablePeerRequest&& from) noexcept : DisablePeerRequest(nullptr, ::std::move(from)) {}
  inline DisablePeerRequest& operator=(const DisablePeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DisablePeerRequest& operator=(DisablePeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DisablePeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DisablePeerRequest>(&DisablePeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(DisablePeerRequest& a, DisablePeerRequest& b) { a.Swap(&b); }
  inline void Swap(DisablePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DisablePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DisablePeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DisablePeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DisablePeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DisablePeerRequest& from) { DisablePeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DisablePeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DisablePeerRequest"; }

  explicit DisablePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DisablePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DisablePeerRequest& from);
  DisablePeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DisablePeerRequest&& from) noexcept
      : DisablePeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kCommunicationFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // string communication = 2;
  void clear_communication() ;
  [[nodiscard]] const ::std::string& communication() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_communication(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_communication();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_communication();
  void set_allocated_communication(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_communication() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_communication(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_communication();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DisablePeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 53,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DisablePeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::google::protobuf::internal::ArenaStringPtr communication_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DisableMrtRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DisableMrtRequest) */ {
 public:
  inline DisableMrtRequest() : DisableMrtRequest(nullptr) {}
  ~DisableMrtRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DisableMrtRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DisableMrtRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DisableMrtRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DisableMrtRequest(const DisableMrtRequest& from) : DisableMrtRequest(nullptr, from) {}
  inline DisableMrtRequest(DisableMrtRequest&& from) noexcept : DisableMrtRequest(nullptr, ::std::move(from)) {}
  inline DisableMrtRequest& operator=(const DisableMrtRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DisableMrtRequest& operator=(DisableMrtRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DisableMrtRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DisableMrtRequest>(&DisableMrtRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 73;
  friend void swap(DisableMrtRequest& a, DisableMrtRequest& b) { a.Swap(&b); }
  inline void Swap(DisableMrtRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DisableMrtRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DisableMrtRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DisableMrtRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DisableMrtRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DisableMrtRequest& from) { DisableMrtRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DisableMrtRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DisableMrtRequest"; }

  explicit DisableMrtRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DisableMrtRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DisableMrtRequest& from);
  DisableMrtRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DisableMrtRequest&& from) noexcept
      : DisableMrtRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFilenameFieldNumber = 1,
  };
  // string filename = 1;
  void clear_filename() ;
  [[nodiscard]] const ::std::string& filename() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filename(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filename();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filename();
  void set_allocated_filename(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filename() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filename(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filename();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DisableMrtRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 40,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DisableMrtRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr filename_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteVrfRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteVrfRequest) */ {
 public:
  inline DeleteVrfRequest() : DeleteVrfRequest(nullptr) {}
  ~DeleteVrfRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteVrfRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteVrfRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteVrfRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteVrfRequest(const DeleteVrfRequest& from) : DeleteVrfRequest(nullptr, from) {}
  inline DeleteVrfRequest(DeleteVrfRequest&& from) noexcept : DeleteVrfRequest(nullptr, ::std::move(from)) {}
  inline DeleteVrfRequest& operator=(const DeleteVrfRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteVrfRequest& operator=(DeleteVrfRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteVrfRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteVrfRequest>(&DeleteVrfRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 41;
  friend void swap(DeleteVrfRequest& a, DeleteVrfRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteVrfRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteVrfRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteVrfRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteVrfRequest& from) { DeleteVrfRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteVrfRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteVrfRequest"; }

  explicit DeleteVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteVrfRequest& from);
  DeleteVrfRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteVrfRequest&& from) noexcept
      : DeleteVrfRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteVrfRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 35,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteVrfRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteRpkiRequest) */ {
 public:
  inline DeleteRpkiRequest() : DeleteRpkiRequest(nullptr) {}
  ~DeleteRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteRpkiRequest(const DeleteRpkiRequest& from) : DeleteRpkiRequest(nullptr, from) {}
  inline DeleteRpkiRequest(DeleteRpkiRequest&& from) noexcept : DeleteRpkiRequest(nullptr, ::std::move(from)) {}
  inline DeleteRpkiRequest& operator=(const DeleteRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteRpkiRequest& operator=(DeleteRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteRpkiRequest>(&DeleteRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 63;
  friend void swap(DeleteRpkiRequest& a, DeleteRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteRpkiRequest& from) { DeleteRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteRpkiRequest"; }

  explicit DeleteRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteRpkiRequest& from);
  DeleteRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteRpkiRequest&& from) noexcept
      : DeleteRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 39,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeletePeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeletePeerRequest) */ {
 public:
  inline DeletePeerRequest() : DeletePeerRequest(nullptr) {}
  ~DeletePeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeletePeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeletePeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeletePeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeletePeerRequest(const DeletePeerRequest& from) : DeletePeerRequest(nullptr, from) {}
  inline DeletePeerRequest(DeletePeerRequest&& from) noexcept : DeletePeerRequest(nullptr, ::std::move(from)) {}
  inline DeletePeerRequest& operator=(const DeletePeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePeerRequest& operator=(DeletePeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeletePeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeletePeerRequest>(&DeletePeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(DeletePeerRequest& a, DeletePeerRequest& b) { a.Swap(&b); }
  inline void Swap(DeletePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeletePeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeletePeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeletePeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeletePeerRequest& from) { DeletePeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeletePeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeletePeerRequest"; }

  explicit DeletePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeletePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeletePeerRequest& from);
  DeletePeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeletePeerRequest&& from) noexcept
      : DeletePeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kInterfaceFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // string interface = 2;
  void clear_interface() ;
  [[nodiscard]] const ::std::string& interface() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_interface(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_interface();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_interface();
  void set_allocated_interface(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_interface() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_interface(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_interface();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeletePeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 48,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeletePeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::google::protobuf::internal::ArenaStringPtr interface_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeletePeerGroupRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeletePeerGroupRequest) */ {
 public:
  inline DeletePeerGroupRequest() : DeletePeerGroupRequest(nullptr) {}
  ~DeletePeerGroupRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeletePeerGroupRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeletePeerGroupRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeletePeerGroupRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeletePeerGroupRequest(const DeletePeerGroupRequest& from) : DeletePeerGroupRequest(nullptr, from) {}
  inline DeletePeerGroupRequest(DeletePeerGroupRequest&& from) noexcept : DeletePeerGroupRequest(nullptr, ::std::move(from)) {}
  inline DeletePeerGroupRequest& operator=(const DeletePeerGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePeerGroupRequest& operator=(DeletePeerGroupRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeletePeerGroupRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeletePeerGroupRequest>(&DeletePeerGroupRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(DeletePeerGroupRequest& a, DeletePeerGroupRequest& b) { a.Swap(&b); }
  inline void Swap(DeletePeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeletePeerGroupRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeletePeerGroupRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeletePeerGroupRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeletePeerGroupRequest& from) { DeletePeerGroupRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeletePeerGroupRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeletePeerGroupRequest"; }

  explicit DeletePeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeletePeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeletePeerGroupRequest& from);
  DeletePeerGroupRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeletePeerGroupRequest&& from) noexcept
      : DeletePeerGroupRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeletePeerGroupRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 41,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeletePeerGroupRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteDynamicNeighborRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteDynamicNeighborRequest) */ {
 public:
  inline DeleteDynamicNeighborRequest() : DeleteDynamicNeighborRequest(nullptr) {}
  ~DeleteDynamicNeighborRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteDynamicNeighborRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteDynamicNeighborRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteDynamicNeighborRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteDynamicNeighborRequest(const DeleteDynamicNeighborRequest& from) : DeleteDynamicNeighborRequest(nullptr, from) {}
  inline DeleteDynamicNeighborRequest(DeleteDynamicNeighborRequest&& from) noexcept : DeleteDynamicNeighborRequest(nullptr, ::std::move(from)) {}
  inline DeleteDynamicNeighborRequest& operator=(const DeleteDynamicNeighborRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteDynamicNeighborRequest& operator=(DeleteDynamicNeighborRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteDynamicNeighborRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteDynamicNeighborRequest>(&DeleteDynamicNeighborRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 28;
  friend void swap(DeleteDynamicNeighborRequest& a, DeleteDynamicNeighborRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteDynamicNeighborRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteDynamicNeighborRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteDynamicNeighborRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteDynamicNeighborRequest& from) { DeleteDynamicNeighborRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteDynamicNeighborRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteDynamicNeighborRequest"; }

  explicit DeleteDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteDynamicNeighborRequest& from);
  DeleteDynamicNeighborRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteDynamicNeighborRequest&& from) noexcept
      : DeleteDynamicNeighborRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPrefixFieldNumber = 1,
    kPeerGroupFieldNumber = 2,
  };
  // string prefix = 1;
  void clear_prefix() ;
  [[nodiscard]] const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // string peer_group = 2;
  void clear_peer_group() ;
  [[nodiscard]] const ::std::string& peer_group() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group();
  void set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteDynamicNeighborRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 59,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteDynamicNeighborRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteBmpRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteBmpRequest) */ {
 public:
  inline DeleteBmpRequest() : DeleteBmpRequest(nullptr) {}
  ~DeleteBmpRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteBmpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteBmpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteBmpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteBmpRequest(const DeleteBmpRequest& from) : DeleteBmpRequest(nullptr, from) {}
  inline DeleteBmpRequest(DeleteBmpRequest&& from) noexcept : DeleteBmpRequest(nullptr, ::std::move(from)) {}
  inline DeleteBmpRequest& operator=(const DeleteBmpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteBmpRequest& operator=(DeleteBmpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteBmpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteBmpRequest>(&DeleteBmpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 75;
  friend void swap(DeleteBmpRequest& a, DeleteBmpRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteBmpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteBmpRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteBmpRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteBmpRequest& from) { DeleteBmpRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteBmpRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteBmpRequest"; }

  explicit DeleteBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteBmpRequest& from);
  DeleteBmpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteBmpRequest&& from) noexcept
      : DeleteBmpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteBmpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 38,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteBmpRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DefaultRouteDistance final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DefaultRouteDistance) */ {
 public:
  inline DefaultRouteDistance() : DefaultRouteDistance(nullptr) {}
  ~DefaultRouteDistance() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DefaultRouteDistance* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DefaultRouteDistance));
  }
#endif

  template <typename = void>
  explicit constexpr DefaultRouteDistance(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DefaultRouteDistance(const DefaultRouteDistance& from) : DefaultRouteDistance(nullptr, from) {}
  inline DefaultRouteDistance(DefaultRouteDistance&& from) noexcept : DefaultRouteDistance(nullptr, ::std::move(from)) {}
  inline DefaultRouteDistance& operator=(const DefaultRouteDistance& from) {
    CopyFrom(from);
    return *this;
  }
  inline DefaultRouteDistance& operator=(DefaultRouteDistance&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DefaultRouteDistance& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DefaultRouteDistance>(&DefaultRouteDistance_globals_);
  }
  static constexpr int kIndexInFileMessages = 150;
  friend void swap(DefaultRouteDistance& a, DefaultRouteDistance& b) { a.Swap(&b); }
  inline void Swap(DefaultRouteDistance* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DefaultRouteDistance* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DefaultRouteDistance* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DefaultRouteDistance>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DefaultRouteDistance& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DefaultRouteDistance& from) { DefaultRouteDistance::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DefaultRouteDistance* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DefaultRouteDistance"; }

  explicit DefaultRouteDistance(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DefaultRouteDistance(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DefaultRouteDistance& from);
  DefaultRouteDistance(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DefaultRouteDistance&& from) noexcept
      : DefaultRouteDistance(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kExternalRouteDistanceFieldNumber = 1,
    kInternalRouteDistanceFieldNumber = 2,
  };
  // uint32 external_route_distance = 1;
  void clear_external_route_distance() ;
  [[nodiscard]] ::uint32_t external_route_distance() const;
  void set_external_route_distance(::uint32_t value);

  private:
  ::uint32_t _internal_external_route_distance() const;
  void _internal_set_external_route_distance(::uint32_t value);

  public:
  // uint32 internal_route_distance = 2;
  void clear_internal_route_distance() ;
  [[nodiscard]] ::uint32_t internal_route_distance() const;
  void set_internal_route_distance(::uint32_t value);

  private:
  ::uint32_t _internal_internal_route_distance() const;
  void _internal_set_internal_route_distance(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DefaultRouteDistance)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DefaultRouteDistance& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t external_route_distance_;
    ::uint32_t internal_route_distance_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Confederation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Confederation) */ {
 public:
  inline Confederation() : Confederation(nullptr) {}
  ~Confederation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Confederation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Confederation));
  }
#endif

  template <typename = void>
  explicit constexpr Confederation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Confederation(const Confederation& from) : Confederation(nullptr, from) {}
  inline Confederation(Confederation&& from) noexcept : Confederation(nullptr, ::std::move(from)) {}
  inline Confederation& operator=(const Confederation& from) {
    CopyFrom(from);
    return *this;
  }
  inline Confederation& operator=(Confederation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Confederation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Confederation>(&Confederation_globals_);
  }
  static constexpr int kIndexInFileMessages = 152;
  friend void swap(Confederation& a, Confederation& b) { a.Swap(&b); }
  inline void Swap(Confederation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Confederation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Confederation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Confederation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Confederation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Confederation& from) { Confederation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Confederation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Confederation"; }

  explicit Confederation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Confederation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Confederation& from);
  Confederation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Confederation&& from) noexcept
      : Confederation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMemberAsListFieldNumber = 3,
    kEnabledFieldNumber = 1,
    kIdentifierFieldNumber = 2,
  };
  // repeated uint32 member_as_list = 3;
  [[nodiscard]] int member_as_list_size()
      const;
  private:
  int _internal_member_as_list_size() const;

  public:
  void clear_member_as_list() ;
  [[nodiscard]] ::uint32_t member_as_list(int index) const;
  void set_member_as_list(int index, ::uint32_t value);
  void add_member_as_list(::uint32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint32_t>& member_as_list()
      const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL mutable_member_as_list();

  private:
  const ::google::protobuf::RepeatedField<::uint32_t>& _internal_member_as_list() const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL _internal_mutable_member_as_list();

  public:
  // bool enabled = 1;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // uint32 identifier = 2;
  void clear_identifier() ;
  [[nodiscard]] ::uint32_t identifier() const;
  void set_identifier(::uint32_t value);

  private:
  ::uint32_t _internal_identifier() const;
  void _internal_set_identifier(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Confederation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Confederation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint32_t> member_as_list_;
    ::google::protobuf::internal::CachedSize _member_as_list_cached_byte_size_;
    bool enabled_;
    ::uint32_t identifier_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CommunityAction final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.CommunityAction) */ {
 public:
  inline CommunityAction() : CommunityAction(nullptr) {}
  ~CommunityAction() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CommunityAction* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CommunityAction));
  }
#endif

  template <typename = void>
  explicit constexpr CommunityAction(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CommunityAction(const CommunityAction& from) : CommunityAction(nullptr, from) {}
  inline CommunityAction(CommunityAction&& from) noexcept : CommunityAction(nullptr, ::std::move(from)) {}
  inline CommunityAction& operator=(const CommunityAction& from) {
    CopyFrom(from);
    return *this;
  }
  inline CommunityAction& operator=(CommunityAction&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CommunityAction& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CommunityAction>(&CommunityAction_globals_);
  }
  static constexpr int kIndexInFileMessages = 138;
  friend void swap(CommunityAction& a, CommunityAction& b) { a.Swap(&b); }
  inline void Swap(CommunityAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CommunityAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] CommunityAction* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CommunityAction>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CommunityAction& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CommunityAction& from) { CommunityAction::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CommunityAction* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.CommunityAction"; }

  explicit CommunityAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CommunityAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CommunityAction& from);
  CommunityAction(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CommunityAction&& from) noexcept
      : CommunityAction(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = CommunityAction_Type;
  static constexpr Type ADD = CommunityAction_Type_ADD;
  static constexpr Type REMOVE = CommunityAction_Type_REMOVE;
  static constexpr Type REPLACE = CommunityAction_Type_REPLACE;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return CommunityAction_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = CommunityAction_Type_Type_MIN;
  static constexpr Type Type_MAX = CommunityAction_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = CommunityAction_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return CommunityAction_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return CommunityAction_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return CommunityAction_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kCommunitiesFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // repeated string communities = 2;
  [[nodiscard]] int communities_size()
      const;
  private:
  int _internal_communities_size() const;

  public:
  void clear_communities() ;
  [[nodiscard]] const ::std::string& communities(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_communities(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_communities(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_communities();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_communities(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      communities() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_communities();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_communities() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_communities();

  public:
  // .apipb.CommunityAction.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::CommunityAction_Type type() const;
  void set_type(::apipb::CommunityAction_Type value);

  private:
  ::apipb::CommunityAction_Type _internal_type() const;
  void _internal_set_type(::apipb::CommunityAction_Type value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.CommunityAction)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 41,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CommunityAction& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> communities_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AsPrependAction final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AsPrependAction) */ {
 public:
  inline AsPrependAction() : AsPrependAction(nullptr) {}
  ~AsPrependAction() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AsPrependAction* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AsPrependAction));
  }
#endif

  template <typename = void>
  explicit constexpr AsPrependAction(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AsPrependAction(const AsPrependAction& from) : AsPrependAction(nullptr, from) {}
  inline AsPrependAction(AsPrependAction&& from) noexcept : AsPrependAction(nullptr, ::std::move(from)) {}
  inline AsPrependAction& operator=(const AsPrependAction& from) {
    CopyFrom(from);
    return *this;
  }
  inline AsPrependAction& operator=(AsPrependAction&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AsPrependAction& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AsPrependAction>(&AsPrependAction_globals_);
  }
  static constexpr int kIndexInFileMessages = 140;
  friend void swap(AsPrependAction& a, AsPrependAction& b) { a.Swap(&b); }
  inline void Swap(AsPrependAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AsPrependAction* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AsPrependAction* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AsPrependAction>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AsPrependAction& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AsPrependAction& from) { AsPrependAction::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AsPrependAction* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AsPrependAction"; }

  explicit AsPrependAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AsPrependAction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AsPrependAction& from);
  AsPrependAction(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AsPrependAction&& from) noexcept
      : AsPrependAction(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAsnFieldNumber = 1,
    kRepeatFieldNumber = 2,
    kUseLeftMostFieldNumber = 3,
  };
  // uint32 asn = 1;
  void clear_asn() ;
  [[nodiscard]] ::uint32_t asn() const;
  void set_asn(::uint32_t value);

  private:
  ::uint32_t _internal_asn() const;
  void _internal_set_asn(::uint32_t value);

  public:
  // uint32 repeat = 2;
  void clear_repeat() ;
  [[nodiscard]] ::uint32_t repeat() const;
  void set_repeat(::uint32_t value);

  private:
  ::uint32_t _internal_repeat() const;
  void _internal_set_repeat(::uint32_t value);

  public:
  // bool use_left_most = 3;
  void clear_use_left_most() ;
  [[nodiscard]] bool use_left_most() const;
  void set_use_left_most(bool value);

  private:
  bool _internal_use_left_most() const;
  void _internal_set_use_left_most(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AsPrependAction)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AsPrependAction& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t asn_;
    ::uint32_t repeat_;
    bool use_left_most_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AsPathLength final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AsPathLength) */ {
 public:
  inline AsPathLength() : AsPathLength(nullptr) {}
  ~AsPathLength() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AsPathLength* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AsPathLength));
  }
#endif

  template <typename = void>
  explicit constexpr AsPathLength(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AsPathLength(const AsPathLength& from) : AsPathLength(nullptr, from) {}
  inline AsPathLength(AsPathLength&& from) noexcept : AsPathLength(nullptr, ::std::move(from)) {}
  inline AsPathLength& operator=(const AsPathLength& from) {
    CopyFrom(from);
    return *this;
  }
  inline AsPathLength& operator=(AsPathLength&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AsPathLength& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AsPathLength>(&AsPathLength_globals_);
  }
  static constexpr int kIndexInFileMessages = 136;
  friend void swap(AsPathLength& a, AsPathLength& b) { a.Swap(&b); }
  inline void Swap(AsPathLength* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AsPathLength* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AsPathLength* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AsPathLength>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AsPathLength& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AsPathLength& from) { AsPathLength::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AsPathLength* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AsPathLength"; }

  explicit AsPathLength(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AsPathLength(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AsPathLength& from);
  AsPathLength(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AsPathLength&& from) noexcept
      : AsPathLength(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = AsPathLength_Type;
  static constexpr Type EQ = AsPathLength_Type_EQ;
  static constexpr Type GE = AsPathLength_Type_GE;
  static constexpr Type LE = AsPathLength_Type_LE;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return AsPathLength_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = AsPathLength_Type_Type_MIN;
  static constexpr Type Type_MAX = AsPathLength_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = AsPathLength_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return AsPathLength_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return AsPathLength_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return AsPathLength_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kTypeFieldNumber = 1,
    kLengthFieldNumber = 2,
  };
  // .apipb.AsPathLength.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::AsPathLength_Type type() const;
  void set_type(::apipb::AsPathLength_Type value);

  private:
  ::apipb::AsPathLength_Type _internal_type() const;
  void _internal_set_type(::apipb::AsPathLength_Type value);

  public:
  // uint32 length = 2;
  void clear_length() ;
  [[nodiscard]] ::uint32_t length() const;
  void set_length(::uint32_t value);

  private:
  ::uint32_t _internal_length() const;
  void _internal_set_length(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AsPathLength)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AsPathLength& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int type_;
    ::uint32_t length_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddRpkiRequest) */ {
 public:
  inline AddRpkiRequest() : AddRpkiRequest(nullptr) {}
  ~AddRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddRpkiRequest(const AddRpkiRequest& from) : AddRpkiRequest(nullptr, from) {}
  inline AddRpkiRequest(AddRpkiRequest&& from) noexcept : AddRpkiRequest(nullptr, ::std::move(from)) {}
  inline AddRpkiRequest& operator=(const AddRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddRpkiRequest& operator=(AddRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddRpkiRequest>(&AddRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 62;
  friend void swap(AddRpkiRequest& a, AddRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(AddRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddRpkiRequest& from) { AddRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddRpkiRequest"; }

  explicit AddRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddRpkiRequest& from);
  AddRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddRpkiRequest&& from) noexcept
      : AddRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kLifetimeFieldNumber = 3,
    kPortFieldNumber = 2,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // int64 lifetime = 3;
  void clear_lifetime() ;
  [[nodiscard]] ::int64_t lifetime() const;
  void set_lifetime(::int64_t value);

  private:
  ::int64_t _internal_lifetime() const;
  void _internal_set_lifetime(::int64_t value);

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 36,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::int64_t lifetime_;
    ::uint32_t port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPathsState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPathsState) */ {
 public:
  inline AddPathsState() : AddPathsState(nullptr) {}
  ~AddPathsState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPathsState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPathsState));
  }
#endif

  template <typename = void>
  explicit constexpr AddPathsState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPathsState(const AddPathsState& from) : AddPathsState(nullptr, from) {}
  inline AddPathsState(AddPathsState&& from) noexcept : AddPathsState(nullptr, ::std::move(from)) {}
  inline AddPathsState& operator=(const AddPathsState& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPathsState& operator=(AddPathsState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPathsState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPathsState>(&AddPathsState_globals_);
  }
  static constexpr int kIndexInFileMessages = 131;
  friend void swap(AddPathsState& a, AddPathsState& b) { a.Swap(&b); }
  inline void Swap(AddPathsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPathsState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPathsState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPathsState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPathsState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPathsState& from) { AddPathsState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPathsState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPathsState"; }

  explicit AddPathsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPathsState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPathsState& from);
  AddPathsState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPathsState&& from) noexcept
      : AddPathsState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kReceiveFieldNumber = 1,
    kSendMaxFieldNumber = 2,
  };
  // bool receive = 1;
  void clear_receive() ;
  [[nodiscard]] bool receive() const;
  void set_receive(bool value);

  private:
  bool _internal_receive() const;
  void _internal_set_receive(bool value);

  public:
  // uint32 send_max = 2;
  void clear_send_max() ;
  [[nodiscard]] ::uint32_t send_max() const;
  void set_send_max(::uint32_t value);

  private:
  ::uint32_t _internal_send_max() const;
  void _internal_set_send_max(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPathsState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPathsState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool receive_;
    ::uint32_t send_max_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPathsConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPathsConfig) */ {
 public:
  inline AddPathsConfig() : AddPathsConfig(nullptr) {}
  ~AddPathsConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPathsConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPathsConfig));
  }
#endif

  template <typename = void>
  explicit constexpr AddPathsConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPathsConfig(const AddPathsConfig& from) : AddPathsConfig(nullptr, from) {}
  inline AddPathsConfig(AddPathsConfig&& from) noexcept : AddPathsConfig(nullptr, ::std::move(from)) {}
  inline AddPathsConfig& operator=(const AddPathsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPathsConfig& operator=(AddPathsConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPathsConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPathsConfig>(&AddPathsConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 130;
  friend void swap(AddPathsConfig& a, AddPathsConfig& b) { a.Swap(&b); }
  inline void Swap(AddPathsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPathsConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPathsConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPathsConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPathsConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPathsConfig& from) { AddPathsConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPathsConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPathsConfig"; }

  explicit AddPathsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPathsConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPathsConfig& from);
  AddPathsConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPathsConfig&& from) noexcept
      : AddPathsConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kReceiveFieldNumber = 1,
    kSendMaxFieldNumber = 2,
  };
  // bool receive = 1;
  void clear_receive() ;
  [[nodiscard]] bool receive() const;
  void set_receive(bool value);

  private:
  bool _internal_receive() const;
  void _internal_set_receive(bool value);

  public:
  // uint32 send_max = 2;
  void clear_send_max() ;
  [[nodiscard]] ::uint32_t send_max() const;
  void set_send_max(::uint32_t value);

  private:
  ::uint32_t _internal_send_max() const;
  void _internal_set_send_max(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPathsConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPathsConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool receive_;
    ::uint32_t send_max_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPathResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPathResponse) */ {
 public:
  inline AddPathResponse() : AddPathResponse(nullptr) {}
  ~AddPathResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPathResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPathResponse));
  }
#endif

  template <typename = void>
  explicit constexpr AddPathResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPathResponse(const AddPathResponse& from) : AddPathResponse(nullptr, from) {}
  inline AddPathResponse(AddPathResponse&& from) noexcept : AddPathResponse(nullptr, ::std::move(from)) {}
  inline AddPathResponse& operator=(const AddPathResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPathResponse& operator=(AddPathResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPathResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPathResponse>(&AddPathResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 32;
  friend void swap(AddPathResponse& a, AddPathResponse& b) { a.Swap(&b); }
  inline void Swap(AddPathResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPathResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPathResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPathResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPathResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPathResponse& from) { AddPathResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPathResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPathResponse"; }

  explicit AddPathResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPathResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPathResponse& from);
  AddPathResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPathResponse&& from) noexcept
      : AddPathResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kUuidFieldNumber = 1,
  };
  // bytes uuid = 1;
  void clear_uuid() ;
  [[nodiscard]] const ::std::string& uuid() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_uuid(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_uuid();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_uuid();
  void set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_uuid() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_uuid(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_uuid();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPathResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPathResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr uuid_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddBmpRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddBmpRequest) */ {
 public:
  inline AddBmpRequest() : AddBmpRequest(nullptr) {}
  ~AddBmpRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddBmpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddBmpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddBmpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddBmpRequest(const AddBmpRequest& from) : AddBmpRequest(nullptr, from) {}
  inline AddBmpRequest(AddBmpRequest&& from) noexcept : AddBmpRequest(nullptr, ::std::move(from)) {}
  inline AddBmpRequest& operator=(const AddBmpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddBmpRequest& operator=(AddBmpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddBmpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddBmpRequest>(&AddBmpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 74;
  friend void swap(AddBmpRequest& a, AddBmpRequest& b) { a.Swap(&b); }
  inline void Swap(AddBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddBmpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddBmpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddBmpRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddBmpRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddBmpRequest& from) { AddBmpRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddBmpRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddBmpRequest"; }

  explicit AddBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddBmpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddBmpRequest& from);
  AddBmpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddBmpRequest&& from) noexcept
      : AddBmpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using MonitoringPolicy = AddBmpRequest_MonitoringPolicy;
  static constexpr MonitoringPolicy PRE = AddBmpRequest_MonitoringPolicy_PRE;
  static constexpr MonitoringPolicy POST = AddBmpRequest_MonitoringPolicy_POST;
  static constexpr MonitoringPolicy BOTH = AddBmpRequest_MonitoringPolicy_BOTH;
  static constexpr MonitoringPolicy LOCAL = AddBmpRequest_MonitoringPolicy_LOCAL;
  static constexpr MonitoringPolicy ALL = AddBmpRequest_MonitoringPolicy_ALL;
  [[nodiscard]] static inline bool MonitoringPolicy_IsValid(int value) {
    return AddBmpRequest_MonitoringPolicy_IsValid(value);
  }
  static constexpr MonitoringPolicy MonitoringPolicy_MIN = AddBmpRequest_MonitoringPolicy_MonitoringPolicy_MIN;
  static constexpr MonitoringPolicy MonitoringPolicy_MAX = AddBmpRequest_MonitoringPolicy_MonitoringPolicy_MAX;
  static constexpr int MonitoringPolicy_ARRAYSIZE = AddBmpRequest_MonitoringPolicy_MonitoringPolicy_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL MonitoringPolicy_descriptor() {
    return AddBmpRequest_MonitoringPolicy_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& MonitoringPolicy_Name(T value) {
    return AddBmpRequest_MonitoringPolicy_Name(value);
  }
  [[nodiscard]] static inline bool MonitoringPolicy_Parse(
      ::absl::string_view name, MonitoringPolicy* PROTOBUF_NONNULL value) {
    return AddBmpRequest_MonitoringPolicy_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kAddressFieldNumber = 1,
    kSysNameFieldNumber = 5,
    kSysDescrFieldNumber = 6,
    kPortFieldNumber = 2,
    kPolicyFieldNumber = 3,
    kStatisticsTimeoutFieldNumber = 4,
  };
  // string address = 1;
  void clear_address() ;
  [[nodiscard]] const ::std::string& address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_address();
  void set_allocated_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_address();

  public:
  // string SysName = 5;
  void clear_sysname() ;
  [[nodiscard]] const ::std::string& sysname() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sysname(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sysname();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_sysname();
  void set_allocated_sysname(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sysname() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sysname(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sysname();

  public:
  // string SysDescr = 6;
  void clear_sysdescr() ;
  [[nodiscard]] const ::std::string& sysdescr() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sysdescr(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sysdescr();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_sysdescr();
  void set_allocated_sysdescr(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sysdescr() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sysdescr(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sysdescr();

  public:
  // uint32 port = 2;
  void clear_port() ;
  [[nodiscard]] ::uint32_t port() const;
  void set_port(::uint32_t value);

  private:
  ::uint32_t _internal_port() const;
  void _internal_set_port(::uint32_t value);

  public:
  // .apipb.AddBmpRequest.MonitoringPolicy policy = 3;
  void clear_policy() ;
  [[nodiscard]] ::apipb::AddBmpRequest_MonitoringPolicy policy() const;
  void set_policy(::apipb::AddBmpRequest_MonitoringPolicy value);

  private:
  ::apipb::AddBmpRequest_MonitoringPolicy _internal_policy() const;
  void _internal_set_policy(::apipb::AddBmpRequest_MonitoringPolicy value);

  public:
  // int32 StatisticsTimeout = 4;
  void clear_statisticstimeout() ;
  [[nodiscard]] ::int32_t statisticstimeout() const;
  void set_statisticstimeout(::int32_t value);

  private:
  ::int32_t _internal_statisticstimeout() const;
  void _internal_set_statisticstimeout(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddBmpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          0, 50,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddBmpRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr address_;
    ::google::protobuf::internal::ArenaStringPtr sysname_;
    ::google::protobuf::internal::ArenaStringPtr sysdescr_;
    ::uint32_t port_;
    int policy_;
    ::int32_t statisticstimeout_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventRequest_Table final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventRequest.Table) */ {
 public:
  inline WatchEventRequest_Table() : WatchEventRequest_Table(nullptr) {}
  ~WatchEventRequest_Table() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventRequest_Table* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventRequest_Table));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventRequest_Table(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventRequest_Table(const WatchEventRequest_Table& from) : WatchEventRequest_Table(nullptr, from) {}
  inline WatchEventRequest_Table(WatchEventRequest_Table&& from) noexcept : WatchEventRequest_Table(nullptr, ::std::move(from)) {}
  inline WatchEventRequest_Table& operator=(const WatchEventRequest_Table& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventRequest_Table& operator=(WatchEventRequest_Table&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventRequest_Table& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventRequest_Table>(&WatchEventRequest_Table_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(WatchEventRequest_Table& a, WatchEventRequest_Table& b) { a.Swap(&b); }
  inline void Swap(WatchEventRequest_Table* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventRequest_Table* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventRequest_Table* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventRequest_Table>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventRequest_Table& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventRequest_Table& from) { WatchEventRequest_Table::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventRequest_Table* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventRequest.Table"; }

  explicit WatchEventRequest_Table(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventRequest_Table(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventRequest_Table& from);
  WatchEventRequest_Table(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventRequest_Table&& from) noexcept
      : WatchEventRequest_Table(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Filter = WatchEventRequest_Table_Filter;

  // accessors -------------------------------------------------------
  enum : int {
    kFiltersFieldNumber = 1,
  };
  // repeated .apipb.WatchEventRequest.Table.Filter filters = 1;
  [[nodiscard]] int filters_size()
      const;
  private:
  int _internal_filters_size() const;

  public:
  void clear_filters() ;
  [[nodiscard]] const ::apipb::WatchEventRequest_Table_Filter& filters(int index) const;
  [[nodiscard]] ::apipb::WatchEventRequest_Table_Filter* PROTOBUF_NONNULL mutable_filters(int index);
  ::apipb::WatchEventRequest_Table_Filter* PROTOBUF_NONNULL add_filters();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>&
  filters() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>* PROTOBUF_NONNULL
  mutable_filters();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>& _internal_filters() const;
  ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>* PROTOBUF_NONNULL _internal_mutable_filters();

  public:
  // @@protoc_insertion_point(class_scope:apipb.WatchEventRequest.Table)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventRequest_Table& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::WatchEventRequest_Table_Filter > filters_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Vrf final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Vrf) */ {
 public:
  inline Vrf() : Vrf(nullptr) {}
  ~Vrf() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Vrf* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Vrf));
  }
#endif

  template <typename = void>
  explicit constexpr Vrf(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Vrf(const Vrf& from) : Vrf(nullptr, from) {}
  inline Vrf(Vrf&& from) noexcept : Vrf(nullptr, ::std::move(from)) {}
  inline Vrf& operator=(const Vrf& from) {
    CopyFrom(from);
    return *this;
  }
  inline Vrf& operator=(Vrf&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Vrf& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Vrf>(&Vrf_globals_);
  }
  static constexpr int kIndexInFileMessages = 149;
  friend void swap(Vrf& a, Vrf& b) { a.Swap(&b); }
  inline void Swap(Vrf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Vrf* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Vrf* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Vrf>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Vrf& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Vrf& from) { Vrf::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Vrf* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Vrf"; }

  explicit Vrf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Vrf(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Vrf& from);
  Vrf(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Vrf&& from) noexcept
      : Vrf(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kImportRtFieldNumber = 3,
    kExportRtFieldNumber = 4,
    kNameFieldNumber = 1,
    kRdFieldNumber = 2,
    kIdFieldNumber = 5,
  };
  // repeated .google.protobuf.Any import_rt = 3;
  [[nodiscard]] int import_rt_size()
      const;
  private:
  int _internal_import_rt_size() const;

  public:
  void clear_import_rt() ;
  [[nodiscard]] const ::google::protobuf::Any& import_rt(int index) const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NONNULL mutable_import_rt(int index);
  ::google::protobuf::Any* PROTOBUF_NONNULL add_import_rt();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
  import_rt() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
  mutable_import_rt();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_import_rt() const;
  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL _internal_mutable_import_rt();

  public:
  // repeated .google.protobuf.Any export_rt = 4;
  [[nodiscard]] int export_rt_size()
      const;
  private:
  int _internal_export_rt_size() const;

  public:
  void clear_export_rt() ;
  [[nodiscard]] const ::google::protobuf::Any& export_rt(int index) const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NONNULL mutable_export_rt(int index);
  ::google::protobuf::Any* PROTOBUF_NONNULL add_export_rt();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
  export_rt() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
  mutable_export_rt();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_export_rt() const;
  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL _internal_mutable_export_rt();

  public:
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .google.protobuf.Any rd = 2;
  [[nodiscard]] bool has_rd()
      const;
  void clear_rd() ;
  [[nodiscard]] const ::google::protobuf::Any& rd() const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NULLABLE release_rd();
  ::google::protobuf::Any* PROTOBUF_NONNULL mutable_rd();
  void set_allocated_rd(::google::protobuf::Any* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_rd(::google::protobuf::Any* PROTOBUF_NULLABLE value);
  ::google::protobuf::Any* PROTOBUF_NULLABLE unsafe_arena_release_rd();

  private:
  const ::google::protobuf::Any& _internal_rd() const;
  ::google::protobuf::Any* PROTOBUF_NONNULL _internal_mutable_rd();

  public:
  // uint32 id = 5;
  void clear_id() ;
  [[nodiscard]] ::uint32_t id() const;
  void set_id(::uint32_t value);

  private:
  ::uint32_t _internal_id() const;
  void _internal_set_id(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Vrf)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          3, 22,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Vrf& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > import_rt_;
    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > export_rt_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::Any* PROTOBUF_NULLABLE rd_;
    ::uint32_t id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED TimersState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.TimersState) */ {
 public:
  inline TimersState() : TimersState(nullptr) {}
  ~TimersState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TimersState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TimersState));
  }
#endif

  template <typename = void>
  explicit constexpr TimersState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TimersState(const TimersState& from) : TimersState(nullptr, from) {}
  inline TimersState(TimersState&& from) noexcept : TimersState(nullptr, ::std::move(from)) {}
  inline TimersState& operator=(const TimersState& from) {
    CopyFrom(from);
    return *this;
  }
  inline TimersState& operator=(TimersState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const TimersState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TimersState>(&TimersState_globals_);
  }
  static constexpr int kIndexInFileMessages = 102;
  friend void swap(TimersState& a, TimersState& b) { a.Swap(&b); }
  inline void Swap(TimersState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TimersState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] TimersState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<TimersState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const TimersState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const TimersState& from) { TimersState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TimersState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.TimersState"; }

  explicit TimersState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TimersState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TimersState& from);
  TimersState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TimersState&& from) noexcept
      : TimersState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kUptimeFieldNumber = 6,
    kDowntimeFieldNumber = 7,
    kConnectRetryFieldNumber = 1,
    kHoldTimeFieldNumber = 2,
    kKeepaliveIntervalFieldNumber = 3,
    kMinimumAdvertisementIntervalFieldNumber = 4,
    kNegotiatedHoldTimeFieldNumber = 5,
  };
  // .google.protobuf.Timestamp uptime = 6;
  [[nodiscard]] bool has_uptime()
      const;
  void clear_uptime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& uptime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_uptime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_uptime();
  void set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_uptime();

  private:
  const ::google::protobuf::Timestamp& _internal_uptime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_uptime();

  public:
  // .google.protobuf.Timestamp downtime = 7;
  [[nodiscard]] bool has_downtime()
      const;
  void clear_downtime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& downtime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_downtime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_downtime();
  void set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_downtime();

  private:
  const ::google::protobuf::Timestamp& _internal_downtime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_downtime();

  public:
  // uint64 connect_retry = 1;
  void clear_connect_retry() ;
  [[nodiscard]] ::uint64_t connect_retry() const;
  void set_connect_retry(::uint64_t value);

  private:
  ::uint64_t _internal_connect_retry() const;
  void _internal_set_connect_retry(::uint64_t value);

  public:
  // uint64 hold_time = 2;
  void clear_hold_time() ;
  [[nodiscard]] ::uint64_t hold_time() const;
  void set_hold_time(::uint64_t value);

  private:
  ::uint64_t _internal_hold_time() const;
  void _internal_set_hold_time(::uint64_t value);

  public:
  // uint64 keepalive_interval = 3;
  void clear_keepalive_interval() ;
  [[nodiscard]] ::uint64_t keepalive_interval() const;
  void set_keepalive_interval(::uint64_t value);

  private:
  ::uint64_t _internal_keepalive_interval() const;
  void _internal_set_keepalive_interval(::uint64_t value);

  public:
  // uint64 minimum_advertisement_interval = 4;
  void clear_minimum_advertisement_interval() ;
  [[nodiscard]] ::uint64_t minimum_advertisement_interval() const;
  void set_minimum_advertisement_interval(::uint64_t value);

  private:
  ::uint64_t _internal_minimum_advertisement_interval() const;
  void _internal_set_minimum_advertisement_interval(::uint64_t value);

  public:
  // uint64 negotiated_hold_time = 5;
  void clear_negotiated_hold_time() ;
  [[nodiscard]] ::uint64_t negotiated_hold_time() const;
  void set_negotiated_hold_time(::uint64_t value);

  private:
  ::uint64_t _internal_negotiated_hold_time() const;
  void _internal_set_negotiated_hold_time(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.TimersState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TimersState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE uptime_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE downtime_;
    ::uint64_t connect_retry_;
    ::uint64_t hold_time_;
    ::uint64_t keepalive_interval_;
    ::uint64_t minimum_advertisement_interval_;
    ::uint64_t negotiated_hold_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteTargetMembership final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteTargetMembership) */ {
 public:
  inline RouteTargetMembership() : RouteTargetMembership(nullptr) {}
  ~RouteTargetMembership() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteTargetMembership* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteTargetMembership));
  }
#endif

  template <typename = void>
  explicit constexpr RouteTargetMembership(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteTargetMembership(const RouteTargetMembership& from) : RouteTargetMembership(nullptr, from) {}
  inline RouteTargetMembership(RouteTargetMembership&& from) noexcept : RouteTargetMembership(nullptr, ::std::move(from)) {}
  inline RouteTargetMembership& operator=(const RouteTargetMembership& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteTargetMembership& operator=(RouteTargetMembership&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteTargetMembership& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteTargetMembership>(&RouteTargetMembership_globals_);
  }
  static constexpr int kIndexInFileMessages = 125;
  friend void swap(RouteTargetMembership& a, RouteTargetMembership& b) { a.Swap(&b); }
  inline void Swap(RouteTargetMembership* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteTargetMembership* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteTargetMembership* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteTargetMembership>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteTargetMembership& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteTargetMembership& from) { RouteTargetMembership::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteTargetMembership* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteTargetMembership"; }

  explicit RouteTargetMembership(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteTargetMembership(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteTargetMembership& from);
  RouteTargetMembership(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteTargetMembership&& from) noexcept
      : RouteTargetMembership(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.RouteTargetMembershipConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::RouteTargetMembershipConfig& config() const;
  [[nodiscard]] ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::RouteTargetMembershipConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE value);
  ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::RouteTargetMembershipConfig& _internal_config() const;
  ::apipb::RouteTargetMembershipConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.RouteTargetMembershipState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::RouteTargetMembershipState& state() const;
  [[nodiscard]] ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE release_state();
  ::apipb::RouteTargetMembershipState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE value);
  ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::RouteTargetMembershipState& _internal_state() const;
  ::apipb::RouteTargetMembershipState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteTargetMembership)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteTargetMembership& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE config_;
    ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RouteSelectionOptions final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RouteSelectionOptions) */ {
 public:
  inline RouteSelectionOptions() : RouteSelectionOptions(nullptr) {}
  ~RouteSelectionOptions() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RouteSelectionOptions* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RouteSelectionOptions));
  }
#endif

  template <typename = void>
  explicit constexpr RouteSelectionOptions(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RouteSelectionOptions(const RouteSelectionOptions& from) : RouteSelectionOptions(nullptr, from) {}
  inline RouteSelectionOptions(RouteSelectionOptions&& from) noexcept : RouteSelectionOptions(nullptr, ::std::move(from)) {}
  inline RouteSelectionOptions& operator=(const RouteSelectionOptions& from) {
    CopyFrom(from);
    return *this;
  }
  inline RouteSelectionOptions& operator=(RouteSelectionOptions&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RouteSelectionOptions& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RouteSelectionOptions>(&RouteSelectionOptions_globals_);
  }
  static constexpr int kIndexInFileMessages = 113;
  friend void swap(RouteSelectionOptions& a, RouteSelectionOptions& b) { a.Swap(&b); }
  inline void Swap(RouteSelectionOptions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RouteSelectionOptions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RouteSelectionOptions* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RouteSelectionOptions>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RouteSelectionOptions& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RouteSelectionOptions& from) { RouteSelectionOptions::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RouteSelectionOptions* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RouteSelectionOptions"; }

  explicit RouteSelectionOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RouteSelectionOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteSelectionOptions& from);
  RouteSelectionOptions(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RouteSelectionOptions&& from) noexcept
      : RouteSelectionOptions(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.RouteSelectionOptionsConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::RouteSelectionOptionsConfig& config() const;
  [[nodiscard]] ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value);
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::RouteSelectionOptionsConfig& _internal_config() const;
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.RouteSelectionOptionsState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::RouteSelectionOptionsState& state() const;
  [[nodiscard]] ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE release_state();
  ::apipb::RouteSelectionOptionsState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE value);
  ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::RouteSelectionOptionsState& _internal_state() const;
  ::apipb::RouteSelectionOptionsState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.RouteSelectionOptions)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RouteSelectionOptions& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE config_;
    ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Roa final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Roa) */ {
 public:
  inline Roa() : Roa(nullptr) {}
  ~Roa() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Roa* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Roa));
  }
#endif

  template <typename = void>
  explicit constexpr Roa(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Roa(const Roa& from) : Roa(nullptr, from) {}
  inline Roa(Roa&& from) noexcept : Roa(nullptr, ::std::move(from)) {}
  inline Roa& operator=(const Roa& from) {
    CopyFrom(from);
    return *this;
  }
  inline Roa& operator=(Roa&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Roa& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Roa>(&Roa_globals_);
  }
  static constexpr int kIndexInFileMessages = 148;
  friend void swap(Roa& a, Roa& b) { a.Swap(&b); }
  inline void Swap(Roa* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Roa* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Roa* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Roa>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Roa& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Roa& from) { Roa::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Roa* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Roa"; }

  explicit Roa(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Roa(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Roa& from);
  Roa(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Roa&& from) noexcept
      : Roa(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPrefixFieldNumber = 4,
    kConfFieldNumber = 5,
    kAsnFieldNumber = 1,
    kPrefixlenFieldNumber = 2,
    kMaxlenFieldNumber = 3,
  };
  // string prefix = 4;
  void clear_prefix() ;
  [[nodiscard]] const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // .apipb.RPKIConf conf = 5;
  [[nodiscard]] bool has_conf()
      const;
  void clear_conf() ;
  [[nodiscard]] const ::apipb::RPKIConf& conf() const;
  [[nodiscard]] ::apipb::RPKIConf* PROTOBUF_NULLABLE release_conf();
  ::apipb::RPKIConf* PROTOBUF_NONNULL mutable_conf();
  void set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value);
  ::apipb::RPKIConf* PROTOBUF_NULLABLE unsafe_arena_release_conf();

  private:
  const ::apipb::RPKIConf& _internal_conf() const;
  ::apipb::RPKIConf* PROTOBUF_NONNULL _internal_mutable_conf();

  public:
  // uint32 asn = 1;
  void clear_asn() ;
  [[nodiscard]] ::uint32_t asn() const;
  void set_asn(::uint32_t value);

  private:
  ::uint32_t _internal_asn() const;
  void _internal_set_asn(::uint32_t value);

  public:
  // uint32 prefixlen = 2;
  void clear_prefixlen() ;
  [[nodiscard]] ::uint32_t prefixlen() const;
  void set_prefixlen(::uint32_t value);

  private:
  ::uint32_t _internal_prefixlen() const;
  void _internal_set_prefixlen(::uint32_t value);

  public:
  // uint32 maxlen = 3;
  void clear_maxlen() ;
  [[nodiscard]] ::uint32_t maxlen() const;
  void set_maxlen(::uint32_t value);

  private:
  ::uint32_t _internal_maxlen() const;
  void _internal_set_maxlen(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Roa)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          1, 24,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Roa& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    ::apipb::RPKIConf* PROTOBUF_NULLABLE conf_;
    ::uint32_t asn_;
    ::uint32_t prefixlen_;
    ::uint32_t maxlen_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RPKIState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RPKIState) */ {
 public:
  inline RPKIState() : RPKIState(nullptr) {}
  ~RPKIState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RPKIState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RPKIState));
  }
#endif

  template <typename = void>
  explicit constexpr RPKIState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RPKIState(const RPKIState& from) : RPKIState(nullptr, from) {}
  inline RPKIState(RPKIState&& from) noexcept : RPKIState(nullptr, ::std::move(from)) {}
  inline RPKIState& operator=(const RPKIState& from) {
    CopyFrom(from);
    return *this;
  }
  inline RPKIState& operator=(RPKIState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RPKIState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RPKIState>(&RPKIState_globals_);
  }
  static constexpr int kIndexInFileMessages = 154;
  friend void swap(RPKIState& a, RPKIState& b) { a.Swap(&b); }
  inline void Swap(RPKIState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RPKIState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RPKIState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RPKIState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RPKIState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RPKIState& from) { RPKIState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RPKIState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RPKIState"; }

  explicit RPKIState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RPKIState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RPKIState& from);
  RPKIState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RPKIState&& from) noexcept
      : RPKIState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kUptimeFieldNumber = 1,
    kDowntimeFieldNumber = 2,
    kUpFieldNumber = 3,
    kRecordIpv4FieldNumber = 4,
    kRecordIpv6FieldNumber = 5,
    kPrefixIpv4FieldNumber = 6,
    kPrefixIpv6FieldNumber = 7,
    kSerialFieldNumber = 8,
    kReceivedIpv4FieldNumber = 9,
    kReceivedIpv6FieldNumber = 10,
    kSerialNotifyFieldNumber = 11,
    kCacheResetFieldNumber = 12,
    kCacheResponseFieldNumber = 13,
    kEndOfDataFieldNumber = 14,
    kErrorFieldNumber = 15,
    kSerialQueryFieldNumber = 16,
    kResetQueryFieldNumber = 17,
  };
  // .google.protobuf.Timestamp uptime = 1;
  [[nodiscard]] bool has_uptime()
      const;
  void clear_uptime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& uptime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_uptime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_uptime();
  void set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_uptime();

  private:
  const ::google::protobuf::Timestamp& _internal_uptime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_uptime();

  public:
  // .google.protobuf.Timestamp downtime = 2;
  [[nodiscard]] bool has_downtime()
      const;
  void clear_downtime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& downtime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_downtime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_downtime();
  void set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_downtime();

  private:
  const ::google::protobuf::Timestamp& _internal_downtime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_downtime();

  public:
  // bool up = 3;
  void clear_up() ;
  [[nodiscard]] bool up() const;
  void set_up(bool value);

  private:
  bool _internal_up() const;
  void _internal_set_up(bool value);

  public:
  // uint32 record_ipv4 = 4;
  void clear_record_ipv4() ;
  [[nodiscard]] ::uint32_t record_ipv4() const;
  void set_record_ipv4(::uint32_t value);

  private:
  ::uint32_t _internal_record_ipv4() const;
  void _internal_set_record_ipv4(::uint32_t value);

  public:
  // uint32 record_ipv6 = 5;
  void clear_record_ipv6() ;
  [[nodiscard]] ::uint32_t record_ipv6() const;
  void set_record_ipv6(::uint32_t value);

  private:
  ::uint32_t _internal_record_ipv6() const;
  void _internal_set_record_ipv6(::uint32_t value);

  public:
  // uint32 prefix_ipv4 = 6;
  void clear_prefix_ipv4() ;
  [[nodiscard]] ::uint32_t prefix_ipv4() const;
  void set_prefix_ipv4(::uint32_t value);

  private:
  ::uint32_t _internal_prefix_ipv4() const;
  void _internal_set_prefix_ipv4(::uint32_t value);

  public:
  // uint32 prefix_ipv6 = 7;
  void clear_prefix_ipv6() ;
  [[nodiscard]] ::uint32_t prefix_ipv6() const;
  void set_prefix_ipv6(::uint32_t value);

  private:
  ::uint32_t _internal_prefix_ipv6() const;
  void _internal_set_prefix_ipv6(::uint32_t value);

  public:
  // uint32 serial = 8;
  void clear_serial() ;
  [[nodiscard]] ::uint32_t serial() const;
  void set_serial(::uint32_t value);

  private:
  ::uint32_t _internal_serial() const;
  void _internal_set_serial(::uint32_t value);

  public:
  // int64 received_ipv4 = 9;
  void clear_received_ipv4() ;
  [[nodiscard]] ::int64_t received_ipv4() const;
  void set_received_ipv4(::int64_t value);

  private:
  ::int64_t _internal_received_ipv4() const;
  void _internal_set_received_ipv4(::int64_t value);

  public:
  // int64 received_ipv6 = 10;
  void clear_received_ipv6() ;
  [[nodiscard]] ::int64_t received_ipv6() const;
  void set_received_ipv6(::int64_t value);

  private:
  ::int64_t _internal_received_ipv6() const;
  void _internal_set_received_ipv6(::int64_t value);

  public:
  // int64 serial_notify = 11;
  void clear_serial_notify() ;
  [[nodiscard]] ::int64_t serial_notify() const;
  void set_serial_notify(::int64_t value);

  private:
  ::int64_t _internal_serial_notify() const;
  void _internal_set_serial_notify(::int64_t value);

  public:
  // int64 cache_reset = 12;
  void clear_cache_reset() ;
  [[nodiscard]] ::int64_t cache_reset() const;
  void set_cache_reset(::int64_t value);

  private:
  ::int64_t _internal_cache_reset() const;
  void _internal_set_cache_reset(::int64_t value);

  public:
  // int64 cache_response = 13;
  void clear_cache_response() ;
  [[nodiscard]] ::int64_t cache_response() const;
  void set_cache_response(::int64_t value);

  private:
  ::int64_t _internal_cache_response() const;
  void _internal_set_cache_response(::int64_t value);

  public:
  // int64 end_of_data = 14;
  void clear_end_of_data() ;
  [[nodiscard]] ::int64_t end_of_data() const;
  void set_end_of_data(::int64_t value);

  private:
  ::int64_t _internal_end_of_data() const;
  void _internal_set_end_of_data(::int64_t value);

  public:
  // int64 error = 15;
  void clear_error() ;
  [[nodiscard]] ::int64_t error() const;
  void set_error(::int64_t value);

  private:
  ::int64_t _internal_error() const;
  void _internal_set_error(::int64_t value);

  public:
  // int64 serial_query = 16;
  void clear_serial_query() ;
  [[nodiscard]] ::int64_t serial_query() const;
  void set_serial_query(::int64_t value);

  private:
  ::int64_t _internal_serial_query() const;
  void _internal_set_serial_query(::int64_t value);

  public:
  // int64 reset_query = 17;
  void clear_reset_query() ;
  [[nodiscard]] ::int64_t reset_query() const;
  void set_reset_query(::int64_t value);

  private:
  ::int64_t _internal_reset_query() const;
  void _internal_set_reset_query(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.RPKIState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 17,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RPKIState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE uptime_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE downtime_;
    bool up_;
    ::uint32_t record_ipv4_;
    ::uint32_t record_ipv6_;
    ::uint32_t prefix_ipv4_;
    ::uint32_t prefix_ipv6_;
    ::uint32_t serial_;
    ::int64_t received_ipv4_;
    ::int64_t received_ipv6_;
    ::int64_t serial_notify_;
    ::int64_t cache_reset_;
    ::int64_t cache_response_;
    ::int64_t end_of_data_;
    ::int64_t error_;
    ::int64_t serial_query_;
    ::int64_t reset_query_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PrefixLimit final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PrefixLimit) */ {
 public:
  inline PrefixLimit() : PrefixLimit(nullptr) {}
  ~PrefixLimit() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PrefixLimit* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PrefixLimit));
  }
#endif

  template <typename = void>
  explicit constexpr PrefixLimit(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PrefixLimit(const PrefixLimit& from) : PrefixLimit(nullptr, from) {}
  inline PrefixLimit(PrefixLimit&& from) noexcept : PrefixLimit(nullptr, ::std::move(from)) {}
  inline PrefixLimit& operator=(const PrefixLimit& from) {
    CopyFrom(from);
    return *this;
  }
  inline PrefixLimit& operator=(PrefixLimit&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PrefixLimit& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PrefixLimit>(&PrefixLimit_globals_);
  }
  static constexpr int kIndexInFileMessages = 89;
  friend void swap(PrefixLimit& a, PrefixLimit& b) { a.Swap(&b); }
  inline void Swap(PrefixLimit* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PrefixLimit* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PrefixLimit* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PrefixLimit>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PrefixLimit& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PrefixLimit& from) { PrefixLimit::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PrefixLimit* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PrefixLimit"; }

  explicit PrefixLimit(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PrefixLimit(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PrefixLimit& from);
  PrefixLimit(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PrefixLimit&& from) noexcept
      : PrefixLimit(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFamilyFieldNumber = 1,
    kMaxPrefixesFieldNumber = 2,
    kShutdownThresholdPctFieldNumber = 3,
  };
  // .apipb.Family family = 1;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // uint32 max_prefixes = 2;
  void clear_max_prefixes() ;
  [[nodiscard]] ::uint32_t max_prefixes() const;
  void set_max_prefixes(::uint32_t value);

  private:
  ::uint32_t _internal_max_prefixes() const;
  void _internal_set_max_prefixes(::uint32_t value);

  public:
  // uint32 shutdown_threshold_pct = 3;
  void clear_shutdown_threshold_pct() ;
  [[nodiscard]] ::uint32_t shutdown_threshold_pct() const;
  void set_shutdown_threshold_pct(::uint32_t value);

  private:
  ::uint32_t _internal_shutdown_threshold_pct() const;
  void _internal_set_shutdown_threshold_pct(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PrefixLimit)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PrefixLimit& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    ::uint32_t max_prefixes_;
    ::uint32_t shutdown_threshold_pct_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MpGracefulRestart final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.MpGracefulRestart) */ {
 public:
  inline MpGracefulRestart() : MpGracefulRestart(nullptr) {}
  ~MpGracefulRestart() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MpGracefulRestart* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MpGracefulRestart));
  }
#endif

  template <typename = void>
  explicit constexpr MpGracefulRestart(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MpGracefulRestart(const MpGracefulRestart& from) : MpGracefulRestart(nullptr, from) {}
  inline MpGracefulRestart(MpGracefulRestart&& from) noexcept : MpGracefulRestart(nullptr, ::std::move(from)) {}
  inline MpGracefulRestart& operator=(const MpGracefulRestart& from) {
    CopyFrom(from);
    return *this;
  }
  inline MpGracefulRestart& operator=(MpGracefulRestart&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MpGracefulRestart& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MpGracefulRestart>(&MpGracefulRestart_globals_);
  }
  static constexpr int kIndexInFileMessages = 108;
  friend void swap(MpGracefulRestart& a, MpGracefulRestart& b) { a.Swap(&b); }
  inline void Swap(MpGracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MpGracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MpGracefulRestart* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MpGracefulRestart>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MpGracefulRestart& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MpGracefulRestart& from) { MpGracefulRestart::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MpGracefulRestart* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.MpGracefulRestart"; }

  explicit MpGracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MpGracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MpGracefulRestart& from);
  MpGracefulRestart(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MpGracefulRestart&& from) noexcept
      : MpGracefulRestart(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.MpGracefulRestartConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::MpGracefulRestartConfig& config() const;
  [[nodiscard]] ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::MpGracefulRestartConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE value);
  ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::MpGracefulRestartConfig& _internal_config() const;
  ::apipb::MpGracefulRestartConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.MpGracefulRestartState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::MpGracefulRestartState& state() const;
  [[nodiscard]] ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE release_state();
  ::apipb::MpGracefulRestartState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE value);
  ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::MpGracefulRestartState& _internal_state() const;
  ::apipb::MpGracefulRestartState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.MpGracefulRestart)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MpGracefulRestart& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE config_;
    ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Messages final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Messages) */ {
 public:
  inline Messages() : Messages(nullptr) {}
  ~Messages() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Messages* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Messages));
  }
#endif

  template <typename = void>
  explicit constexpr Messages(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Messages(const Messages& from) : Messages(nullptr, from) {}
  inline Messages(Messages&& from) noexcept : Messages(nullptr, ::std::move(from)) {}
  inline Messages& operator=(const Messages& from) {
    CopyFrom(from);
    return *this;
  }
  inline Messages& operator=(Messages&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Messages& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Messages>(&Messages_globals_);
  }
  static constexpr int kIndexInFileMessages = 97;
  friend void swap(Messages& a, Messages& b) { a.Swap(&b); }
  inline void Swap(Messages* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Messages* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Messages* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Messages>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Messages& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Messages& from) { Messages::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Messages* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Messages"; }

  explicit Messages(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Messages(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Messages& from);
  Messages(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Messages&& from) noexcept
      : Messages(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kReceivedFieldNumber = 1,
    kSentFieldNumber = 2,
  };
  // .apipb.Message received = 1;
  [[nodiscard]] bool has_received()
      const;
  void clear_received() ;
  [[nodiscard]] const ::apipb::Message& received() const;
  [[nodiscard]] ::apipb::Message* PROTOBUF_NULLABLE release_received();
  ::apipb::Message* PROTOBUF_NONNULL mutable_received();
  void set_allocated_received(::apipb::Message* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_received(::apipb::Message* PROTOBUF_NULLABLE value);
  ::apipb::Message* PROTOBUF_NULLABLE unsafe_arena_release_received();

  private:
  const ::apipb::Message& _internal_received() const;
  ::apipb::Message* PROTOBUF_NONNULL _internal_mutable_received();

  public:
  // .apipb.Message sent = 2;
  [[nodiscard]] bool has_sent()
      const;
  void clear_sent() ;
  [[nodiscard]] const ::apipb::Message& sent() const;
  [[nodiscard]] ::apipb::Message* PROTOBUF_NULLABLE release_sent();
  ::apipb::Message* PROTOBUF_NONNULL mutable_sent();
  void set_allocated_sent(::apipb::Message* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_sent(::apipb::Message* PROTOBUF_NULLABLE value);
  ::apipb::Message* PROTOBUF_NULLABLE unsafe_arena_release_sent();

  private:
  const ::apipb::Message& _internal_sent() const;
  ::apipb::Message* PROTOBUF_NONNULL _internal_mutable_sent();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Messages)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Messages& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Message* PROTOBUF_NULLABLE received_;
    ::apipb::Message* PROTOBUF_NULLABLE sent_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED LongLivedGracefulRestart final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.LongLivedGracefulRestart) */ {
 public:
  inline LongLivedGracefulRestart() : LongLivedGracefulRestart(nullptr) {}
  ~LongLivedGracefulRestart() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(LongLivedGracefulRestart* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(LongLivedGracefulRestart));
  }
#endif

  template <typename = void>
  explicit constexpr LongLivedGracefulRestart(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline LongLivedGracefulRestart(const LongLivedGracefulRestart& from) : LongLivedGracefulRestart(nullptr, from) {}
  inline LongLivedGracefulRestart(LongLivedGracefulRestart&& from) noexcept : LongLivedGracefulRestart(nullptr, ::std::move(from)) {}
  inline LongLivedGracefulRestart& operator=(const LongLivedGracefulRestart& from) {
    CopyFrom(from);
    return *this;
  }
  inline LongLivedGracefulRestart& operator=(LongLivedGracefulRestart&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const LongLivedGracefulRestart& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LongLivedGracefulRestart>(&LongLivedGracefulRestart_globals_);
  }
  static constexpr int kIndexInFileMessages = 128;
  friend void swap(LongLivedGracefulRestart& a, LongLivedGracefulRestart& b) { a.Swap(&b); }
  inline void Swap(LongLivedGracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LongLivedGracefulRestart* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] LongLivedGracefulRestart* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<LongLivedGracefulRestart>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const LongLivedGracefulRestart& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const LongLivedGracefulRestart& from) { LongLivedGracefulRestart::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(LongLivedGracefulRestart* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.LongLivedGracefulRestart"; }

  explicit LongLivedGracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LongLivedGracefulRestart(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LongLivedGracefulRestart& from);
  LongLivedGracefulRestart(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LongLivedGracefulRestart&& from) noexcept
      : LongLivedGracefulRestart(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.LongLivedGracefulRestartConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::LongLivedGracefulRestartConfig& config() const;
  [[nodiscard]] ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE value);
  ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::LongLivedGracefulRestartConfig& _internal_config() const;
  ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.LongLivedGracefulRestartState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::LongLivedGracefulRestartState& state() const;
  [[nodiscard]] ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE release_state();
  ::apipb::LongLivedGracefulRestartState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE value);
  ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::LongLivedGracefulRestartState& _internal_state() const;
  ::apipb::LongLivedGracefulRestartState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.LongLivedGracefulRestart)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const LongLivedGracefulRestart& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE config_;
    ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListRpkiTableRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListRpkiTableRequest) */ {
 public:
  inline ListRpkiTableRequest() : ListRpkiTableRequest(nullptr) {}
  ~ListRpkiTableRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListRpkiTableRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListRpkiTableRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListRpkiTableRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListRpkiTableRequest(const ListRpkiTableRequest& from) : ListRpkiTableRequest(nullptr, from) {}
  inline ListRpkiTableRequest(ListRpkiTableRequest&& from) noexcept : ListRpkiTableRequest(nullptr, ::std::move(from)) {}
  inline ListRpkiTableRequest& operator=(const ListRpkiTableRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListRpkiTableRequest& operator=(ListRpkiTableRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListRpkiTableRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListRpkiTableRequest>(&ListRpkiTableRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 69;
  friend void swap(ListRpkiTableRequest& a, ListRpkiTableRequest& b) { a.Swap(&b); }
  inline void Swap(ListRpkiTableRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListRpkiTableRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListRpkiTableRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListRpkiTableRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListRpkiTableRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListRpkiTableRequest& from) { ListRpkiTableRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListRpkiTableRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListRpkiTableRequest"; }

  explicit ListRpkiTableRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListRpkiTableRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListRpkiTableRequest& from);
  ListRpkiTableRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListRpkiTableRequest&& from) noexcept
      : ListRpkiTableRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFamilyFieldNumber = 1,
  };
  // .apipb.Family family = 1;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListRpkiTableRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListRpkiTableRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListRpkiRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListRpkiRequest) */ {
 public:
  inline ListRpkiRequest() : ListRpkiRequest(nullptr) {}
  ~ListRpkiRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListRpkiRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListRpkiRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListRpkiRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListRpkiRequest(const ListRpkiRequest& from) : ListRpkiRequest(nullptr, from) {}
  inline ListRpkiRequest(ListRpkiRequest&& from) noexcept : ListRpkiRequest(nullptr, ::std::move(from)) {}
  inline ListRpkiRequest& operator=(const ListRpkiRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListRpkiRequest& operator=(ListRpkiRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListRpkiRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListRpkiRequest>(&ListRpkiRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 64;
  friend void swap(ListRpkiRequest& a, ListRpkiRequest& b) { a.Swap(&b); }
  inline void Swap(ListRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListRpkiRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListRpkiRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListRpkiRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListRpkiRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListRpkiRequest& from) { ListRpkiRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListRpkiRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListRpkiRequest"; }

  explicit ListRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListRpkiRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListRpkiRequest& from);
  ListRpkiRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListRpkiRequest&& from) noexcept
      : ListRpkiRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFamilyFieldNumber = 1,
  };
  // .apipb.Family family = 1;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListRpkiRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListRpkiRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPathRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPathRequest) */ {
 public:
  inline ListPathRequest() : ListPathRequest(nullptr) {}
  ~ListPathRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPathRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPathRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListPathRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPathRequest(const ListPathRequest& from) : ListPathRequest(nullptr, from) {}
  inline ListPathRequest(ListPathRequest&& from) noexcept : ListPathRequest(nullptr, ::std::move(from)) {}
  inline ListPathRequest& operator=(const ListPathRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPathRequest& operator=(ListPathRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPathRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPathRequest>(&ListPathRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 35;
  friend void swap(ListPathRequest& a, ListPathRequest& b) { a.Swap(&b); }
  inline void Swap(ListPathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPathRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPathRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPathRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPathRequest& from) { ListPathRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPathRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPathRequest"; }

  explicit ListPathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPathRequest& from);
  ListPathRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPathRequest&& from) noexcept
      : ListPathRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using SortType = ListPathRequest_SortType;
  static constexpr SortType NONE = ListPathRequest_SortType_NONE;
  static constexpr SortType PREFIX = ListPathRequest_SortType_PREFIX;
  [[nodiscard]] static inline bool SortType_IsValid(int value) {
    return ListPathRequest_SortType_IsValid(value);
  }
  static constexpr SortType SortType_MIN = ListPathRequest_SortType_SortType_MIN;
  static constexpr SortType SortType_MAX = ListPathRequest_SortType_SortType_MAX;
  static constexpr int SortType_ARRAYSIZE = ListPathRequest_SortType_SortType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SortType_descriptor() {
    return ListPathRequest_SortType_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& SortType_Name(T value) {
    return ListPathRequest_SortType_Name(value);
  }
  [[nodiscard]] static inline bool SortType_Parse(
      ::absl::string_view name, SortType* PROTOBUF_NONNULL value) {
    return ListPathRequest_SortType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kPrefixesFieldNumber = 4,
    kNameFieldNumber = 2,
    kFamilyFieldNumber = 3,
    kTableTypeFieldNumber = 1,
    kSortTypeFieldNumber = 5,
    kEnableFilteredFieldNumber = 6,
    kEnableNlriBinaryFieldNumber = 7,
    kEnableAttributeBinaryFieldNumber = 8,
    kEnableOnlyBinaryFieldNumber = 9,
  };
  // repeated .apipb.TableLookupPrefix prefixes = 4;
  [[nodiscard]] int prefixes_size()
      const;
  private:
  int _internal_prefixes_size() const;

  public:
  void clear_prefixes() ;
  [[nodiscard]] const ::apipb::TableLookupPrefix& prefixes(int index) const;
  [[nodiscard]] ::apipb::TableLookupPrefix* PROTOBUF_NONNULL mutable_prefixes(int index);
  ::apipb::TableLookupPrefix* PROTOBUF_NONNULL add_prefixes();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>&
  prefixes() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>* PROTOBUF_NONNULL
  mutable_prefixes();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>& _internal_prefixes() const;
  ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>* PROTOBUF_NONNULL _internal_mutable_prefixes();

  public:
  // string name = 2;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.Family family = 3;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // .apipb.TableType table_type = 1;
  void clear_table_type() ;
  [[nodiscard]] ::apipb::TableType table_type() const;
  void set_table_type(::apipb::TableType value);

  private:
  ::apipb::TableType _internal_table_type() const;
  void _internal_set_table_type(::apipb::TableType value);

  public:
  // .apipb.ListPathRequest.SortType sort_type = 5;
  void clear_sort_type() ;
  [[nodiscard]] ::apipb::ListPathRequest_SortType sort_type() const;
  void set_sort_type(::apipb::ListPathRequest_SortType value);

  private:
  ::apipb::ListPathRequest_SortType _internal_sort_type() const;
  void _internal_set_sort_type(::apipb::ListPathRequest_SortType value);

  public:
  // bool enable_filtered = 6;
  void clear_enable_filtered() ;
  [[nodiscard]] bool enable_filtered() const;
  void set_enable_filtered(bool value);

  private:
  bool _internal_enable_filtered() const;
  void _internal_set_enable_filtered(bool value);

  public:
  // bool enable_nlri_binary = 7;
  void clear_enable_nlri_binary() ;
  [[nodiscard]] bool enable_nlri_binary() const;
  void set_enable_nlri_binary(bool value);

  private:
  bool _internal_enable_nlri_binary() const;
  void _internal_set_enable_nlri_binary(bool value);

  public:
  // bool enable_attribute_binary = 8;
  void clear_enable_attribute_binary() ;
  [[nodiscard]] bool enable_attribute_binary() const;
  void set_enable_attribute_binary(bool value);

  private:
  bool _internal_enable_attribute_binary() const;
  void _internal_set_enable_attribute_binary(bool value);

  public:
  // bool enable_only_binary = 9;
  void clear_enable_only_binary() ;
  [[nodiscard]] bool enable_only_binary() const;
  void set_enable_only_binary(bool value);

  private:
  bool _internal_enable_only_binary() const;
  void _internal_set_enable_only_binary(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPathRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 9,
                          2, 42,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPathRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::TableLookupPrefix > prefixes_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    int table_type_;
    int sort_type_;
    bool enable_filtered_;
    bool enable_nlri_binary_;
    bool enable_attribute_binary_;
    bool enable_only_binary_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListDynamicNeighborResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListDynamicNeighborResponse) */ {
 public:
  inline ListDynamicNeighborResponse() : ListDynamicNeighborResponse(nullptr) {}
  ~ListDynamicNeighborResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListDynamicNeighborResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListDynamicNeighborResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListDynamicNeighborResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListDynamicNeighborResponse(const ListDynamicNeighborResponse& from) : ListDynamicNeighborResponse(nullptr, from) {}
  inline ListDynamicNeighborResponse(ListDynamicNeighborResponse&& from) noexcept : ListDynamicNeighborResponse(nullptr, ::std::move(from)) {}
  inline ListDynamicNeighborResponse& operator=(const ListDynamicNeighborResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDynamicNeighborResponse& operator=(ListDynamicNeighborResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListDynamicNeighborResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListDynamicNeighborResponse>(&ListDynamicNeighborResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 30;
  friend void swap(ListDynamicNeighborResponse& a, ListDynamicNeighborResponse& b) { a.Swap(&b); }
  inline void Swap(ListDynamicNeighborResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListDynamicNeighborResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListDynamicNeighborResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListDynamicNeighborResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListDynamicNeighborResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListDynamicNeighborResponse& from) { ListDynamicNeighborResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListDynamicNeighborResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListDynamicNeighborResponse"; }

  explicit ListDynamicNeighborResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListDynamicNeighborResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListDynamicNeighborResponse& from);
  ListDynamicNeighborResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListDynamicNeighborResponse&& from) noexcept
      : ListDynamicNeighborResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDynamicNeighborFieldNumber = 1,
  };
  // .apipb.DynamicNeighbor dynamic_neighbor = 1;
  [[nodiscard]] bool has_dynamic_neighbor()
      const;
  void clear_dynamic_neighbor() ;
  [[nodiscard]] const ::apipb::DynamicNeighbor& dynamic_neighbor() const;
  [[nodiscard]] ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE release_dynamic_neighbor();
  ::apipb::DynamicNeighbor* PROTOBUF_NONNULL mutable_dynamic_neighbor();
  void set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value);
  ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE unsafe_arena_release_dynamic_neighbor();

  private:
  const ::apipb::DynamicNeighbor& _internal_dynamic_neighbor() const;
  ::apipb::DynamicNeighbor* PROTOBUF_NONNULL _internal_mutable_dynamic_neighbor();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListDynamicNeighborResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListDynamicNeighborResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE dynamic_neighbor_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListBmpResponse_BmpStation_State final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListBmpResponse.BmpStation.State) */ {
 public:
  inline ListBmpResponse_BmpStation_State() : ListBmpResponse_BmpStation_State(nullptr) {}
  ~ListBmpResponse_BmpStation_State() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListBmpResponse_BmpStation_State));
  }
#endif

  template <typename = void>
  explicit constexpr ListBmpResponse_BmpStation_State(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListBmpResponse_BmpStation_State(const ListBmpResponse_BmpStation_State& from) : ListBmpResponse_BmpStation_State(nullptr, from) {}
  inline ListBmpResponse_BmpStation_State(ListBmpResponse_BmpStation_State&& from) noexcept : ListBmpResponse_BmpStation_State(nullptr, ::std::move(from)) {}
  inline ListBmpResponse_BmpStation_State& operator=(const ListBmpResponse_BmpStation_State& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListBmpResponse_BmpStation_State& operator=(ListBmpResponse_BmpStation_State&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListBmpResponse_BmpStation_State& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListBmpResponse_BmpStation_State>(&ListBmpResponse_BmpStation_State_globals_);
  }
  static constexpr int kIndexInFileMessages = 78;
  friend void swap(ListBmpResponse_BmpStation_State& a, ListBmpResponse_BmpStation_State& b) { a.Swap(&b); }
  inline void Swap(ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListBmpResponse_BmpStation_State>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListBmpResponse_BmpStation_State& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListBmpResponse_BmpStation_State& from) { ListBmpResponse_BmpStation_State::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListBmpResponse.BmpStation.State"; }

  explicit ListBmpResponse_BmpStation_State(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListBmpResponse_BmpStation_State(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListBmpResponse_BmpStation_State& from);
  ListBmpResponse_BmpStation_State(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListBmpResponse_BmpStation_State&& from) noexcept
      : ListBmpResponse_BmpStation_State(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kUptimeFieldNumber = 1,
    kDowntimeFieldNumber = 2,
  };
  // .google.protobuf.Timestamp uptime = 1;
  [[nodiscard]] bool has_uptime()
      const;
  void clear_uptime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& uptime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_uptime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_uptime();
  void set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_uptime();

  private:
  const ::google::protobuf::Timestamp& _internal_uptime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_uptime();

  public:
  // .google.protobuf.Timestamp downtime = 2;
  [[nodiscard]] bool has_downtime()
      const;
  void clear_downtime() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& downtime() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_downtime();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_downtime();
  void set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_downtime();

  private:
  const ::google::protobuf::Timestamp& _internal_downtime() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_downtime();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListBmpResponse.BmpStation.State)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListBmpResponse_BmpStation_State& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE uptime_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE downtime_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Ibgp final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Ibgp) */ {
 public:
  inline Ibgp() : Ibgp(nullptr) {}
  ~Ibgp() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Ibgp* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Ibgp));
  }
#endif

  template <typename = void>
  explicit constexpr Ibgp(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Ibgp(const Ibgp& from) : Ibgp(nullptr, from) {}
  inline Ibgp(Ibgp&& from) noexcept : Ibgp(nullptr, ::std::move(from)) {}
  inline Ibgp& operator=(const Ibgp& from) {
    CopyFrom(from);
    return *this;
  }
  inline Ibgp& operator=(Ibgp&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Ibgp& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Ibgp>(&Ibgp_globals_);
  }
  static constexpr int kIndexInFileMessages = 121;
  friend void swap(Ibgp& a, Ibgp& b) { a.Swap(&b); }
  inline void Swap(Ibgp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Ibgp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Ibgp* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Ibgp>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Ibgp& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Ibgp& from) { Ibgp::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Ibgp* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Ibgp"; }

  explicit Ibgp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Ibgp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Ibgp& from);
  Ibgp(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Ibgp&& from) noexcept
      : Ibgp(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.IbgpConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::IbgpConfig& config() const;
  [[nodiscard]] ::apipb::IbgpConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::IbgpConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::IbgpConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::IbgpConfig* PROTOBUF_NULLABLE value);
  ::apipb::IbgpConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::IbgpConfig& _internal_config() const;
  ::apipb::IbgpConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.IbgpState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::IbgpState& state() const;
  [[nodiscard]] ::apipb::IbgpState* PROTOBUF_NULLABLE release_state();
  ::apipb::IbgpState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::IbgpState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::IbgpState* PROTOBUF_NULLABLE value);
  ::apipb::IbgpState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::IbgpState& _internal_state() const;
  ::apipb::IbgpState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Ibgp)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Ibgp& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::IbgpConfig* PROTOBUF_NULLABLE config_;
    ::apipb::IbgpState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetTableRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.GetTableRequest) */ {
 public:
  inline GetTableRequest() : GetTableRequest(nullptr) {}
  ~GetTableRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetTableRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetTableRequest));
  }
#endif

  template <typename = void>
  explicit constexpr GetTableRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetTableRequest(const GetTableRequest& from) : GetTableRequest(nullptr, from) {}
  inline GetTableRequest(GetTableRequest&& from) noexcept : GetTableRequest(nullptr, ::std::move(from)) {}
  inline GetTableRequest& operator=(const GetTableRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetTableRequest& operator=(GetTableRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetTableRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetTableRequest>(&GetTableRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 38;
  friend void swap(GetTableRequest& a, GetTableRequest& b) { a.Swap(&b); }
  inline void Swap(GetTableRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetTableRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetTableRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetTableRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetTableRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetTableRequest& from) { GetTableRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetTableRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.GetTableRequest"; }

  explicit GetTableRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetTableRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetTableRequest& from);
  GetTableRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetTableRequest&& from) noexcept
      : GetTableRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 3,
    kFamilyFieldNumber = 2,
    kTableTypeFieldNumber = 1,
  };
  // string name = 3;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.Family family = 2;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // .apipb.TableType table_type = 1;
  void clear_table_type() ;
  [[nodiscard]] ::apipb::TableType table_type() const;
  void set_table_type(::apipb::TableType value);

  private:
  ::apipb::TableType _internal_table_type() const;
  void _internal_set_table_type(::apipb::TableType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.GetTableRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 34,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetTableRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    int table_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Ebgp final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Ebgp) */ {
 public:
  inline Ebgp() : Ebgp(nullptr) {}
  ~Ebgp() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Ebgp* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Ebgp));
  }
#endif

  template <typename = void>
  explicit constexpr Ebgp(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Ebgp(const Ebgp& from) : Ebgp(nullptr, from) {}
  inline Ebgp(Ebgp&& from) noexcept : Ebgp(nullptr, ::std::move(from)) {}
  inline Ebgp& operator=(const Ebgp& from) {
    CopyFrom(from);
    return *this;
  }
  inline Ebgp& operator=(Ebgp&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Ebgp& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Ebgp>(&Ebgp_globals_);
  }
  static constexpr int kIndexInFileMessages = 118;
  friend void swap(Ebgp& a, Ebgp& b) { a.Swap(&b); }
  inline void Swap(Ebgp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Ebgp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Ebgp* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Ebgp>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Ebgp& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Ebgp& from) { Ebgp::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Ebgp* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Ebgp"; }

  explicit Ebgp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Ebgp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Ebgp& from);
  Ebgp(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Ebgp&& from) noexcept
      : Ebgp(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.EbgpConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::EbgpConfig& config() const;
  [[nodiscard]] ::apipb::EbgpConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::EbgpConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::EbgpConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::EbgpConfig* PROTOBUF_NULLABLE value);
  ::apipb::EbgpConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::EbgpConfig& _internal_config() const;
  ::apipb::EbgpConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.EbgpState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::EbgpState& state() const;
  [[nodiscard]] ::apipb::EbgpState* PROTOBUF_NULLABLE release_state();
  ::apipb::EbgpState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::EbgpState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::EbgpState* PROTOBUF_NULLABLE value);
  ::apipb::EbgpState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::EbgpState& _internal_state() const;
  ::apipb::EbgpState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Ebgp)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Ebgp& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::EbgpConfig* PROTOBUF_NULLABLE config_;
    ::apipb::EbgpState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DefinedSet final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DefinedSet) */ {
 public:
  inline DefinedSet() : DefinedSet(nullptr) {}
  ~DefinedSet() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DefinedSet* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DefinedSet));
  }
#endif

  template <typename = void>
  explicit constexpr DefinedSet(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DefinedSet(const DefinedSet& from) : DefinedSet(nullptr, from) {}
  inline DefinedSet(DefinedSet&& from) noexcept : DefinedSet(nullptr, ::std::move(from)) {}
  inline DefinedSet& operator=(const DefinedSet& from) {
    CopyFrom(from);
    return *this;
  }
  inline DefinedSet& operator=(DefinedSet&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DefinedSet& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DefinedSet>(&DefinedSet_globals_);
  }
  static constexpr int kIndexInFileMessages = 134;
  friend void swap(DefinedSet& a, DefinedSet& b) { a.Swap(&b); }
  inline void Swap(DefinedSet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DefinedSet* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DefinedSet* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DefinedSet>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DefinedSet& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DefinedSet& from) { DefinedSet::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DefinedSet* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DefinedSet"; }

  explicit DefinedSet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DefinedSet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DefinedSet& from);
  DefinedSet(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DefinedSet&& from) noexcept
      : DefinedSet(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kListFieldNumber = 3,
    kPrefixesFieldNumber = 4,
    kNameFieldNumber = 2,
    kDefinedTypeFieldNumber = 1,
  };
  // repeated string list = 3;
  [[nodiscard]] int list_size()
      const;
  private:
  int _internal_list_size() const;

  public:
  void clear_list() ;
  [[nodiscard]] const ::std::string& list(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_list(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_list(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_list();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_list(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      list() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_list();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_list() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_list();

  public:
  // repeated .apipb.Prefix prefixes = 4;
  [[nodiscard]] int prefixes_size()
      const;
  private:
  int _internal_prefixes_size() const;

  public:
  void clear_prefixes() ;
  [[nodiscard]] const ::apipb::Prefix& prefixes(int index) const;
  [[nodiscard]] ::apipb::Prefix* PROTOBUF_NONNULL mutable_prefixes(int index);
  ::apipb::Prefix* PROTOBUF_NONNULL add_prefixes();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Prefix>&
  prefixes() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Prefix>* PROTOBUF_NONNULL
  mutable_prefixes();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Prefix>& _internal_prefixes() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Prefix>* PROTOBUF_NONNULL _internal_mutable_prefixes();

  public:
  // string name = 2;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.DefinedType defined_type = 1;
  void clear_defined_type() ;
  [[nodiscard]] ::apipb::DefinedType defined_type() const;
  void set_defined_type(::apipb::DefinedType value);

  private:
  ::apipb::DefinedType _internal_defined_type() const;
  void _internal_set_defined_type(::apipb::DefinedType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DefinedSet)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          1, 33,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DefinedSet& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> list_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Prefix > prefixes_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int defined_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Conditions final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Conditions) */ {
 public:
  inline Conditions() : Conditions(nullptr) {}
  ~Conditions() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Conditions* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Conditions));
  }
#endif

  template <typename = void>
  explicit constexpr Conditions(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Conditions(const Conditions& from) : Conditions(nullptr, from) {}
  inline Conditions(Conditions&& from) noexcept : Conditions(nullptr, ::std::move(from)) {}
  inline Conditions& operator=(const Conditions& from) {
    CopyFrom(from);
    return *this;
  }
  inline Conditions& operator=(Conditions&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Conditions& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Conditions>(&Conditions_globals_);
  }
  static constexpr int kIndexInFileMessages = 137;
  friend void swap(Conditions& a, Conditions& b) { a.Swap(&b); }
  inline void Swap(Conditions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Conditions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Conditions* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Conditions>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Conditions& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Conditions& from) { Conditions::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Conditions* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Conditions"; }

  explicit Conditions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Conditions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Conditions& from);
  Conditions(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Conditions&& from) noexcept
      : Conditions(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using RouteType = Conditions_RouteType;
  static constexpr RouteType ROUTE_TYPE_NONE = Conditions_RouteType_ROUTE_TYPE_NONE;
  static constexpr RouteType ROUTE_TYPE_INTERNAL = Conditions_RouteType_ROUTE_TYPE_INTERNAL;
  static constexpr RouteType ROUTE_TYPE_EXTERNAL = Conditions_RouteType_ROUTE_TYPE_EXTERNAL;
  static constexpr RouteType ROUTE_TYPE_LOCAL = Conditions_RouteType_ROUTE_TYPE_LOCAL;
  [[nodiscard]] static inline bool RouteType_IsValid(int value) {
    return Conditions_RouteType_IsValid(value);
  }
  static constexpr RouteType RouteType_MIN = Conditions_RouteType_RouteType_MIN;
  static constexpr RouteType RouteType_MAX = Conditions_RouteType_RouteType_MAX;
  static constexpr int RouteType_ARRAYSIZE = Conditions_RouteType_RouteType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL RouteType_descriptor() {
    return Conditions_RouteType_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& RouteType_Name(T value) {
    return Conditions_RouteType_Name(value);
  }
  [[nodiscard]] static inline bool RouteType_Parse(
      ::absl::string_view name, RouteType* PROTOBUF_NONNULL value) {
    return Conditions_RouteType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kNextHopInListFieldNumber = 10,
    kAfiSafiInFieldNumber = 11,
    kPrefixSetFieldNumber = 1,
    kNeighborSetFieldNumber = 2,
    kAsPathLengthFieldNumber = 3,
    kAsPathSetFieldNumber = 4,
    kCommunitySetFieldNumber = 5,
    kExtCommunitySetFieldNumber = 6,
    kLargeCommunitySetFieldNumber = 9,
    kRpkiResultFieldNumber = 7,
    kRouteTypeFieldNumber = 8,
  };
  // repeated string next_hop_in_list = 10;
  [[nodiscard]] int next_hop_in_list_size()
      const;
  private:
  int _internal_next_hop_in_list_size() const;

  public:
  void clear_next_hop_in_list() ;
  [[nodiscard]] const ::std::string& next_hop_in_list(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_next_hop_in_list(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_hop_in_list(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_next_hop_in_list();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_next_hop_in_list(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      next_hop_in_list() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_next_hop_in_list();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_next_hop_in_list() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_next_hop_in_list();

  public:
  // repeated .apipb.Family afi_safi_in = 11;
  [[nodiscard]] int afi_safi_in_size()
      const;
  private:
  int _internal_afi_safi_in_size() const;

  public:
  void clear_afi_safi_in() ;
  [[nodiscard]] const ::apipb::Family& afi_safi_in(int index) const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NONNULL mutable_afi_safi_in(int index);
  ::apipb::Family* PROTOBUF_NONNULL add_afi_safi_in();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Family>&
  afi_safi_in() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Family>* PROTOBUF_NONNULL
  mutable_afi_safi_in();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Family>& _internal_afi_safi_in() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Family>* PROTOBUF_NONNULL _internal_mutable_afi_safi_in();

  public:
  // .apipb.MatchSet prefix_set = 1;
  [[nodiscard]] bool has_prefix_set()
      const;
  void clear_prefix_set() ;
  [[nodiscard]] const ::apipb::MatchSet& prefix_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_prefix_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_prefix_set();
  void set_allocated_prefix_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_prefix_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_prefix_set();

  private:
  const ::apipb::MatchSet& _internal_prefix_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_prefix_set();

  public:
  // .apipb.MatchSet neighbor_set = 2;
  [[nodiscard]] bool has_neighbor_set()
      const;
  void clear_neighbor_set() ;
  [[nodiscard]] const ::apipb::MatchSet& neighbor_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_neighbor_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_neighbor_set();
  void set_allocated_neighbor_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_neighbor_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_neighbor_set();

  private:
  const ::apipb::MatchSet& _internal_neighbor_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_neighbor_set();

  public:
  // .apipb.AsPathLength as_path_length = 3;
  [[nodiscard]] bool has_as_path_length()
      const;
  void clear_as_path_length() ;
  [[nodiscard]] const ::apipb::AsPathLength& as_path_length() const;
  [[nodiscard]] ::apipb::AsPathLength* PROTOBUF_NULLABLE release_as_path_length();
  ::apipb::AsPathLength* PROTOBUF_NONNULL mutable_as_path_length();
  void set_allocated_as_path_length(::apipb::AsPathLength* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_as_path_length(::apipb::AsPathLength* PROTOBUF_NULLABLE value);
  ::apipb::AsPathLength* PROTOBUF_NULLABLE unsafe_arena_release_as_path_length();

  private:
  const ::apipb::AsPathLength& _internal_as_path_length() const;
  ::apipb::AsPathLength* PROTOBUF_NONNULL _internal_mutable_as_path_length();

  public:
  // .apipb.MatchSet as_path_set = 4;
  [[nodiscard]] bool has_as_path_set()
      const;
  void clear_as_path_set() ;
  [[nodiscard]] const ::apipb::MatchSet& as_path_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_as_path_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_as_path_set();
  void set_allocated_as_path_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_as_path_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_as_path_set();

  private:
  const ::apipb::MatchSet& _internal_as_path_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_as_path_set();

  public:
  // .apipb.MatchSet community_set = 5;
  [[nodiscard]] bool has_community_set()
      const;
  void clear_community_set() ;
  [[nodiscard]] const ::apipb::MatchSet& community_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_community_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_community_set();
  void set_allocated_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_community_set();

  private:
  const ::apipb::MatchSet& _internal_community_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_community_set();

  public:
  // .apipb.MatchSet ext_community_set = 6;
  [[nodiscard]] bool has_ext_community_set()
      const;
  void clear_ext_community_set() ;
  [[nodiscard]] const ::apipb::MatchSet& ext_community_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_ext_community_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_ext_community_set();
  void set_allocated_ext_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ext_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_ext_community_set();

  private:
  const ::apipb::MatchSet& _internal_ext_community_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_ext_community_set();

  public:
  // .apipb.MatchSet large_community_set = 9;
  [[nodiscard]] bool has_large_community_set()
      const;
  void clear_large_community_set() ;
  [[nodiscard]] const ::apipb::MatchSet& large_community_set() const;
  [[nodiscard]] ::apipb::MatchSet* PROTOBUF_NULLABLE release_large_community_set();
  ::apipb::MatchSet* PROTOBUF_NONNULL mutable_large_community_set();
  void set_allocated_large_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_large_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value);
  ::apipb::MatchSet* PROTOBUF_NULLABLE unsafe_arena_release_large_community_set();

  private:
  const ::apipb::MatchSet& _internal_large_community_set() const;
  ::apipb::MatchSet* PROTOBUF_NONNULL _internal_mutable_large_community_set();

  public:
  // int32 rpki_result = 7;
  void clear_rpki_result() ;
  [[nodiscard]] ::int32_t rpki_result() const;
  void set_rpki_result(::int32_t value);

  private:
  ::int32_t _internal_rpki_result() const;
  void _internal_set_rpki_result(::int32_t value);

  public:
  // .apipb.Conditions.RouteType route_type = 8;
  void clear_route_type() ;
  [[nodiscard]] ::apipb::Conditions_RouteType route_type() const;
  void set_route_type(::apipb::Conditions_RouteType value);

  private:
  ::apipb::Conditions_RouteType _internal_route_type() const;
  void _internal_set_route_type(::apipb::Conditions_RouteType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Conditions)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          8, 49,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Conditions& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> next_hop_in_list_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Family > afi_safi_in_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE prefix_set_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE neighbor_set_;
    ::apipb::AsPathLength* PROTOBUF_NULLABLE as_path_length_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE as_path_set_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE community_set_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE ext_community_set_;
    ::apipb::MatchSet* PROTOBUF_NULLABLE large_community_set_;
    ::int32_t rpki_result_;
    int route_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AfiSafiState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AfiSafiState) */ {
 public:
  inline AfiSafiState() : AfiSafiState(nullptr) {}
  ~AfiSafiState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AfiSafiState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AfiSafiState));
  }
#endif

  template <typename = void>
  explicit constexpr AfiSafiState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AfiSafiState(const AfiSafiState& from) : AfiSafiState(nullptr, from) {}
  inline AfiSafiState(AfiSafiState&& from) noexcept : AfiSafiState(nullptr, ::std::move(from)) {}
  inline AfiSafiState& operator=(const AfiSafiState& from) {
    CopyFrom(from);
    return *this;
  }
  inline AfiSafiState& operator=(AfiSafiState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AfiSafiState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AfiSafiState>(&AfiSafiState_globals_);
  }
  static constexpr int kIndexInFileMessages = 110;
  friend void swap(AfiSafiState& a, AfiSafiState& b) { a.Swap(&b); }
  inline void Swap(AfiSafiState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AfiSafiState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AfiSafiState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AfiSafiState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AfiSafiState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AfiSafiState& from) { AfiSafiState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AfiSafiState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AfiSafiState"; }

  explicit AfiSafiState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AfiSafiState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AfiSafiState& from);
  AfiSafiState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AfiSafiState&& from) noexcept
      : AfiSafiState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFamilyFieldNumber = 1,
    kReceivedFieldNumber = 3,
    kAcceptedFieldNumber = 4,
    kAdvertisedFieldNumber = 5,
    kEnabledFieldNumber = 2,
  };
  // .apipb.Family family = 1;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // uint64 received = 3;
  void clear_received() ;
  [[nodiscard]] ::uint64_t received() const;
  void set_received(::uint64_t value);

  private:
  ::uint64_t _internal_received() const;
  void _internal_set_received(::uint64_t value);

  public:
  // uint64 accepted = 4;
  void clear_accepted() ;
  [[nodiscard]] ::uint64_t accepted() const;
  void set_accepted(::uint64_t value);

  private:
  ::uint64_t _internal_accepted() const;
  void _internal_set_accepted(::uint64_t value);

  public:
  // uint64 advertised = 5;
  void clear_advertised() ;
  [[nodiscard]] ::uint64_t advertised() const;
  void set_advertised(::uint64_t value);

  private:
  ::uint64_t _internal_advertised() const;
  void _internal_set_advertised(::uint64_t value);

  public:
  // bool enabled = 2;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AfiSafiState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AfiSafiState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    ::uint64_t received_;
    ::uint64_t accepted_;
    ::uint64_t advertised_;
    bool enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AfiSafiConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AfiSafiConfig) */ {
 public:
  inline AfiSafiConfig() : AfiSafiConfig(nullptr) {}
  ~AfiSafiConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AfiSafiConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AfiSafiConfig));
  }
#endif

  template <typename = void>
  explicit constexpr AfiSafiConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AfiSafiConfig(const AfiSafiConfig& from) : AfiSafiConfig(nullptr, from) {}
  inline AfiSafiConfig(AfiSafiConfig&& from) noexcept : AfiSafiConfig(nullptr, ::std::move(from)) {}
  inline AfiSafiConfig& operator=(const AfiSafiConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline AfiSafiConfig& operator=(AfiSafiConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AfiSafiConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AfiSafiConfig>(&AfiSafiConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 109;
  friend void swap(AfiSafiConfig& a, AfiSafiConfig& b) { a.Swap(&b); }
  inline void Swap(AfiSafiConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AfiSafiConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AfiSafiConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AfiSafiConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AfiSafiConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AfiSafiConfig& from) { AfiSafiConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AfiSafiConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AfiSafiConfig"; }

  explicit AfiSafiConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AfiSafiConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AfiSafiConfig& from);
  AfiSafiConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AfiSafiConfig&& from) noexcept
      : AfiSafiConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFamilyFieldNumber = 1,
    kEnabledFieldNumber = 2,
  };
  // .apipb.Family family = 1;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // bool enabled = 2;
  void clear_enabled() ;
  [[nodiscard]] bool enabled() const;
  void set_enabled(bool value);

  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AfiSafiConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AfiSafiConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    bool enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPaths final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPaths) */ {
 public:
  inline AddPaths() : AddPaths(nullptr) {}
  ~AddPaths() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPaths* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPaths));
  }
#endif

  template <typename = void>
  explicit constexpr AddPaths(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPaths(const AddPaths& from) : AddPaths(nullptr, from) {}
  inline AddPaths(AddPaths&& from) noexcept : AddPaths(nullptr, ::std::move(from)) {}
  inline AddPaths& operator=(const AddPaths& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPaths& operator=(AddPaths&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPaths& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPaths>(&AddPaths_globals_);
  }
  static constexpr int kIndexInFileMessages = 132;
  friend void swap(AddPaths& a, AddPaths& b) { a.Swap(&b); }
  inline void Swap(AddPaths* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPaths* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPaths* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPaths>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPaths& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPaths& from) { AddPaths::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPaths* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPaths"; }

  explicit AddPaths(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPaths(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPaths& from);
  AddPaths(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPaths&& from) noexcept
      : AddPaths(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.AddPathsConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::AddPathsConfig& config() const;
  [[nodiscard]] ::apipb::AddPathsConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::AddPathsConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::AddPathsConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::AddPathsConfig* PROTOBUF_NULLABLE value);
  ::apipb::AddPathsConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::AddPathsConfig& _internal_config() const;
  ::apipb::AddPathsConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.AddPathsState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::AddPathsState& state() const;
  [[nodiscard]] ::apipb::AddPathsState* PROTOBUF_NULLABLE release_state();
  ::apipb::AddPathsState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::AddPathsState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::AddPathsState* PROTOBUF_NULLABLE value);
  ::apipb::AddPathsState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::AddPathsState& _internal_state() const;
  ::apipb::AddPathsState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPaths)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPaths& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::AddPathsConfig* PROTOBUF_NULLABLE config_;
    ::apipb::AddPathsState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddDynamicNeighborRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddDynamicNeighborRequest) */ {
 public:
  inline AddDynamicNeighborRequest() : AddDynamicNeighborRequest(nullptr) {}
  ~AddDynamicNeighborRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddDynamicNeighborRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddDynamicNeighborRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddDynamicNeighborRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddDynamicNeighborRequest(const AddDynamicNeighborRequest& from) : AddDynamicNeighborRequest(nullptr, from) {}
  inline AddDynamicNeighborRequest(AddDynamicNeighborRequest&& from) noexcept : AddDynamicNeighborRequest(nullptr, ::std::move(from)) {}
  inline AddDynamicNeighborRequest& operator=(const AddDynamicNeighborRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddDynamicNeighborRequest& operator=(AddDynamicNeighborRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddDynamicNeighborRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddDynamicNeighborRequest>(&AddDynamicNeighborRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 27;
  friend void swap(AddDynamicNeighborRequest& a, AddDynamicNeighborRequest& b) { a.Swap(&b); }
  inline void Swap(AddDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddDynamicNeighborRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddDynamicNeighborRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddDynamicNeighborRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddDynamicNeighborRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddDynamicNeighborRequest& from) { AddDynamicNeighborRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddDynamicNeighborRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddDynamicNeighborRequest"; }

  explicit AddDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddDynamicNeighborRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddDynamicNeighborRequest& from);
  AddDynamicNeighborRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddDynamicNeighborRequest&& from) noexcept
      : AddDynamicNeighborRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDynamicNeighborFieldNumber = 1,
  };
  // .apipb.DynamicNeighbor dynamic_neighbor = 1;
  [[nodiscard]] bool has_dynamic_neighbor()
      const;
  void clear_dynamic_neighbor() ;
  [[nodiscard]] const ::apipb::DynamicNeighbor& dynamic_neighbor() const;
  [[nodiscard]] ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE release_dynamic_neighbor();
  ::apipb::DynamicNeighbor* PROTOBUF_NONNULL mutable_dynamic_neighbor();
  void set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value);
  ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE unsafe_arena_release_dynamic_neighbor();

  private:
  const ::apipb::DynamicNeighbor& _internal_dynamic_neighbor() const;
  ::apipb::DynamicNeighbor* PROTOBUF_NONNULL _internal_mutable_dynamic_neighbor();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddDynamicNeighborRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddDynamicNeighborRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE dynamic_neighbor_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Actions final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Actions) */ {
 public:
  inline Actions() : Actions(nullptr) {}
  ~Actions() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Actions* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Actions));
  }
#endif

  template <typename = void>
  explicit constexpr Actions(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Actions(const Actions& from) : Actions(nullptr, from) {}
  inline Actions(Actions&& from) noexcept : Actions(nullptr, ::std::move(from)) {}
  inline Actions& operator=(const Actions& from) {
    CopyFrom(from);
    return *this;
  }
  inline Actions& operator=(Actions&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Actions& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Actions>(&Actions_globals_);
  }
  static constexpr int kIndexInFileMessages = 143;
  friend void swap(Actions& a, Actions& b) { a.Swap(&b); }
  inline void Swap(Actions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Actions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Actions* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Actions>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Actions& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Actions& from) { Actions::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Actions* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Actions"; }

  explicit Actions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Actions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Actions& from);
  Actions(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Actions&& from) noexcept
      : Actions(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kCommunityFieldNumber = 2,
    kMedFieldNumber = 3,
    kAsPrependFieldNumber = 4,
    kExtCommunityFieldNumber = 5,
    kNexthopFieldNumber = 6,
    kLocalPrefFieldNumber = 7,
    kLargeCommunityFieldNumber = 8,
    kRouteActionFieldNumber = 1,
  };
  // .apipb.CommunityAction community = 2;
  [[nodiscard]] bool has_community()
      const;
  void clear_community() ;
  [[nodiscard]] const ::apipb::CommunityAction& community() const;
  [[nodiscard]] ::apipb::CommunityAction* PROTOBUF_NULLABLE release_community();
  ::apipb::CommunityAction* PROTOBUF_NONNULL mutable_community();
  void set_allocated_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  ::apipb::CommunityAction* PROTOBUF_NULLABLE unsafe_arena_release_community();

  private:
  const ::apipb::CommunityAction& _internal_community() const;
  ::apipb::CommunityAction* PROTOBUF_NONNULL _internal_mutable_community();

  public:
  // .apipb.MedAction med = 3;
  [[nodiscard]] bool has_med()
      const;
  void clear_med() ;
  [[nodiscard]] const ::apipb::MedAction& med() const;
  [[nodiscard]] ::apipb::MedAction* PROTOBUF_NULLABLE release_med();
  ::apipb::MedAction* PROTOBUF_NONNULL mutable_med();
  void set_allocated_med(::apipb::MedAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_med(::apipb::MedAction* PROTOBUF_NULLABLE value);
  ::apipb::MedAction* PROTOBUF_NULLABLE unsafe_arena_release_med();

  private:
  const ::apipb::MedAction& _internal_med() const;
  ::apipb::MedAction* PROTOBUF_NONNULL _internal_mutable_med();

  public:
  // .apipb.AsPrependAction as_prepend = 4;
  [[nodiscard]] bool has_as_prepend()
      const;
  void clear_as_prepend() ;
  [[nodiscard]] const ::apipb::AsPrependAction& as_prepend() const;
  [[nodiscard]] ::apipb::AsPrependAction* PROTOBUF_NULLABLE release_as_prepend();
  ::apipb::AsPrependAction* PROTOBUF_NONNULL mutable_as_prepend();
  void set_allocated_as_prepend(::apipb::AsPrependAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_as_prepend(::apipb::AsPrependAction* PROTOBUF_NULLABLE value);
  ::apipb::AsPrependAction* PROTOBUF_NULLABLE unsafe_arena_release_as_prepend();

  private:
  const ::apipb::AsPrependAction& _internal_as_prepend() const;
  ::apipb::AsPrependAction* PROTOBUF_NONNULL _internal_mutable_as_prepend();

  public:
  // .apipb.CommunityAction ext_community = 5;
  [[nodiscard]] bool has_ext_community()
      const;
  void clear_ext_community() ;
  [[nodiscard]] const ::apipb::CommunityAction& ext_community() const;
  [[nodiscard]] ::apipb::CommunityAction* PROTOBUF_NULLABLE release_ext_community();
  ::apipb::CommunityAction* PROTOBUF_NONNULL mutable_ext_community();
  void set_allocated_ext_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ext_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  ::apipb::CommunityAction* PROTOBUF_NULLABLE unsafe_arena_release_ext_community();

  private:
  const ::apipb::CommunityAction& _internal_ext_community() const;
  ::apipb::CommunityAction* PROTOBUF_NONNULL _internal_mutable_ext_community();

  public:
  // .apipb.NexthopAction nexthop = 6;
  [[nodiscard]] bool has_nexthop()
      const;
  void clear_nexthop() ;
  [[nodiscard]] const ::apipb::NexthopAction& nexthop() const;
  [[nodiscard]] ::apipb::NexthopAction* PROTOBUF_NULLABLE release_nexthop();
  ::apipb::NexthopAction* PROTOBUF_NONNULL mutable_nexthop();
  void set_allocated_nexthop(::apipb::NexthopAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_nexthop(::apipb::NexthopAction* PROTOBUF_NULLABLE value);
  ::apipb::NexthopAction* PROTOBUF_NULLABLE unsafe_arena_release_nexthop();

  private:
  const ::apipb::NexthopAction& _internal_nexthop() const;
  ::apipb::NexthopAction* PROTOBUF_NONNULL _internal_mutable_nexthop();

  public:
  // .apipb.LocalPrefAction local_pref = 7;
  [[nodiscard]] bool has_local_pref()
      const;
  void clear_local_pref() ;
  [[nodiscard]] const ::apipb::LocalPrefAction& local_pref() const;
  [[nodiscard]] ::apipb::LocalPrefAction* PROTOBUF_NULLABLE release_local_pref();
  ::apipb::LocalPrefAction* PROTOBUF_NONNULL mutable_local_pref();
  void set_allocated_local_pref(::apipb::LocalPrefAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_local_pref(::apipb::LocalPrefAction* PROTOBUF_NULLABLE value);
  ::apipb::LocalPrefAction* PROTOBUF_NULLABLE unsafe_arena_release_local_pref();

  private:
  const ::apipb::LocalPrefAction& _internal_local_pref() const;
  ::apipb::LocalPrefAction* PROTOBUF_NONNULL _internal_mutable_local_pref();

  public:
  // .apipb.CommunityAction large_community = 8;
  [[nodiscard]] bool has_large_community()
      const;
  void clear_large_community() ;
  [[nodiscard]] const ::apipb::CommunityAction& large_community() const;
  [[nodiscard]] ::apipb::CommunityAction* PROTOBUF_NULLABLE release_large_community();
  ::apipb::CommunityAction* PROTOBUF_NONNULL mutable_large_community();
  void set_allocated_large_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_large_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value);
  ::apipb::CommunityAction* PROTOBUF_NULLABLE unsafe_arena_release_large_community();

  private:
  const ::apipb::CommunityAction& _internal_large_community() const;
  ::apipb::CommunityAction* PROTOBUF_NONNULL _internal_mutable_large_community();

  public:
  // .apipb.RouteAction route_action = 1;
  void clear_route_action() ;
  [[nodiscard]] ::apipb::RouteAction route_action() const;
  void set_route_action(::apipb::RouteAction value);

  private:
  ::apipb::RouteAction _internal_route_action() const;
  void _internal_set_route_action(::apipb::RouteAction value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Actions)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          7, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Actions& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::CommunityAction* PROTOBUF_NULLABLE community_;
    ::apipb::MedAction* PROTOBUF_NULLABLE med_;
    ::apipb::AsPrependAction* PROTOBUF_NULLABLE as_prepend_;
    ::apipb::CommunityAction* PROTOBUF_NULLABLE ext_community_;
    ::apipb::NexthopAction* PROTOBUF_NULLABLE nexthop_;
    ::apipb::LocalPrefAction* PROTOBUF_NULLABLE local_pref_;
    ::apipb::CommunityAction* PROTOBUF_NULLABLE large_community_;
    int route_action_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventRequest) */ {
 public:
  inline WatchEventRequest() : WatchEventRequest(nullptr) {}
  ~WatchEventRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventRequest));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventRequest(const WatchEventRequest& from) : WatchEventRequest(nullptr, from) {}
  inline WatchEventRequest(WatchEventRequest&& from) noexcept : WatchEventRequest(nullptr, ::std::move(from)) {}
  inline WatchEventRequest& operator=(const WatchEventRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventRequest& operator=(WatchEventRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventRequest>(&WatchEventRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(WatchEventRequest& a, WatchEventRequest& b) { a.Swap(&b); }
  inline void Swap(WatchEventRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventRequest& from) { WatchEventRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventRequest"; }

  explicit WatchEventRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventRequest& from);
  WatchEventRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventRequest&& from) noexcept
      : WatchEventRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Peer = WatchEventRequest_Peer;
  using Table = WatchEventRequest_Table;

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 1,
    kTableFieldNumber = 2,
  };
  // .apipb.WatchEventRequest.Peer peer = 1;
  [[nodiscard]] bool has_peer()
      const;
  void clear_peer() ;
  [[nodiscard]] const ::apipb::WatchEventRequest_Peer& peer() const;
  [[nodiscard]] ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE release_peer();
  ::apipb::WatchEventRequest_Peer* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE value);
  ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::WatchEventRequest_Peer& _internal_peer() const;
  ::apipb::WatchEventRequest_Peer* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // .apipb.WatchEventRequest.Table table = 2;
  [[nodiscard]] bool has_table()
      const;
  void clear_table() ;
  [[nodiscard]] const ::apipb::WatchEventRequest_Table& table() const;
  [[nodiscard]] ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE release_table();
  ::apipb::WatchEventRequest_Table* PROTOBUF_NONNULL mutable_table();
  void set_allocated_table(::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_table(::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE value);
  ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE unsafe_arena_release_table();

  private:
  const ::apipb::WatchEventRequest_Table& _internal_table() const;
  ::apipb::WatchEventRequest_Table* PROTOBUF_NONNULL _internal_mutable_table();

  public:
  // @@protoc_insertion_point(class_scope:apipb.WatchEventRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE peer_;
    ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE table_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Validation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Validation) */ {
 public:
  inline Validation() : Validation(nullptr) {}
  ~Validation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Validation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Validation));
  }
#endif

  template <typename = void>
  explicit constexpr Validation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Validation(const Validation& from) : Validation(nullptr, from) {}
  inline Validation(Validation&& from) noexcept : Validation(nullptr, ::std::move(from)) {}
  inline Validation& operator=(const Validation& from) {
    CopyFrom(from);
    return *this;
  }
  inline Validation& operator=(Validation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Validation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Validation>(&Validation_globals_);
  }
  static constexpr int kIndexInFileMessages = 82;
  friend void swap(Validation& a, Validation& b) { a.Swap(&b); }
  inline void Swap(Validation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Validation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Validation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Validation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Validation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Validation& from) { Validation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Validation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Validation"; }

  explicit Validation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Validation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Validation& from);
  Validation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Validation&& from) noexcept
      : Validation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using State = Validation_State;
  static constexpr State STATE_NONE = Validation_State_STATE_NONE;
  static constexpr State STATE_NOT_FOUND = Validation_State_STATE_NOT_FOUND;
  static constexpr State STATE_VALID = Validation_State_STATE_VALID;
  static constexpr State STATE_INVALID = Validation_State_STATE_INVALID;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return Validation_State_IsValid(value);
  }
  static constexpr State State_MIN = Validation_State_State_MIN;
  static constexpr State State_MAX = Validation_State_State_MAX;
  static constexpr int State_ARRAYSIZE = Validation_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return Validation_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return Validation_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return Validation_State_Parse(name, value);
  }
  using Reason = Validation_Reason;
  static constexpr Reason REASON_NONE = Validation_Reason_REASON_NONE;
  static constexpr Reason REASON_ASN = Validation_Reason_REASON_ASN;
  static constexpr Reason REASON_LENGTH = Validation_Reason_REASON_LENGTH;
  [[nodiscard]] static inline bool Reason_IsValid(int value) {
    return Validation_Reason_IsValid(value);
  }
  static constexpr Reason Reason_MIN = Validation_Reason_Reason_MIN;
  static constexpr Reason Reason_MAX = Validation_Reason_Reason_MAX;
  static constexpr int Reason_ARRAYSIZE = Validation_Reason_Reason_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Reason_descriptor() {
    return Validation_Reason_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Reason_Name(T value) {
    return Validation_Reason_Name(value);
  }
  [[nodiscard]] static inline bool Reason_Parse(
      ::absl::string_view name, Reason* PROTOBUF_NONNULL value) {
    return Validation_Reason_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kMatchedFieldNumber = 3,
    kUnmatchedAsnFieldNumber = 4,
    kUnmatchedLengthFieldNumber = 5,
    kStateFieldNumber = 1,
    kReasonFieldNumber = 2,
  };
  // repeated .apipb.Roa matched = 3;
  [[nodiscard]] int matched_size()
      const;
  private:
  int _internal_matched_size() const;

  public:
  void clear_matched() ;
  [[nodiscard]] const ::apipb::Roa& matched(int index) const;
  [[nodiscard]] ::apipb::Roa* PROTOBUF_NONNULL mutable_matched(int index);
  ::apipb::Roa* PROTOBUF_NONNULL add_matched();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
  matched() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
  mutable_matched();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& _internal_matched() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL _internal_mutable_matched();

  public:
  // repeated .apipb.Roa unmatched_asn = 4;
  [[nodiscard]] int unmatched_asn_size()
      const;
  private:
  int _internal_unmatched_asn_size() const;

  public:
  void clear_unmatched_asn() ;
  [[nodiscard]] const ::apipb::Roa& unmatched_asn(int index) const;
  [[nodiscard]] ::apipb::Roa* PROTOBUF_NONNULL mutable_unmatched_asn(int index);
  ::apipb::Roa* PROTOBUF_NONNULL add_unmatched_asn();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
  unmatched_asn() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
  mutable_unmatched_asn();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& _internal_unmatched_asn() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL _internal_mutable_unmatched_asn();

  public:
  // repeated .apipb.Roa unmatched_length = 5;
  [[nodiscard]] int unmatched_length_size()
      const;
  private:
  int _internal_unmatched_length_size() const;

  public:
  void clear_unmatched_length() ;
  [[nodiscard]] const ::apipb::Roa& unmatched_length(int index) const;
  [[nodiscard]] ::apipb::Roa* PROTOBUF_NONNULL mutable_unmatched_length(int index);
  ::apipb::Roa* PROTOBUF_NONNULL add_unmatched_length();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
  unmatched_length() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
  mutable_unmatched_length();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& _internal_unmatched_length() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL _internal_mutable_unmatched_length();

  public:
  // .apipb.Validation.State state = 1;
  void clear_state() ;
  [[nodiscard]] ::apipb::Validation_State state() const;
  void set_state(::apipb::Validation_State value);

  private:
  ::apipb::Validation_State _internal_state() const;
  void _internal_set_state(::apipb::Validation_State value);

  public:
  // .apipb.Validation.Reason reason = 2;
  void clear_reason() ;
  [[nodiscard]] ::apipb::Validation_Reason reason() const;
  void set_reason(::apipb::Validation_Reason value);

  private:
  ::apipb::Validation_Reason _internal_reason() const;
  void _internal_set_reason(::apipb::Validation_Reason value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Validation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Validation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Roa > matched_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Roa > unmatched_asn_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Roa > unmatched_length_;
    int state_;
    int reason_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UseMultiplePaths final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UseMultiplePaths) */ {
 public:
  inline UseMultiplePaths() : UseMultiplePaths(nullptr) {}
  ~UseMultiplePaths() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UseMultiplePaths* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UseMultiplePaths));
  }
#endif

  template <typename = void>
  explicit constexpr UseMultiplePaths(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UseMultiplePaths(const UseMultiplePaths& from) : UseMultiplePaths(nullptr, from) {}
  inline UseMultiplePaths(UseMultiplePaths&& from) noexcept : UseMultiplePaths(nullptr, ::std::move(from)) {}
  inline UseMultiplePaths& operator=(const UseMultiplePaths& from) {
    CopyFrom(from);
    return *this;
  }
  inline UseMultiplePaths& operator=(UseMultiplePaths&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UseMultiplePaths& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UseMultiplePaths>(&UseMultiplePaths_globals_);
  }
  static constexpr int kIndexInFileMessages = 122;
  friend void swap(UseMultiplePaths& a, UseMultiplePaths& b) { a.Swap(&b); }
  inline void Swap(UseMultiplePaths* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UseMultiplePaths* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UseMultiplePaths* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UseMultiplePaths>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UseMultiplePaths& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UseMultiplePaths& from) { UseMultiplePaths::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UseMultiplePaths* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UseMultiplePaths"; }

  explicit UseMultiplePaths(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UseMultiplePaths(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UseMultiplePaths& from);
  UseMultiplePaths(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UseMultiplePaths&& from) noexcept
      : UseMultiplePaths(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
    kEbgpFieldNumber = 3,
    kIbgpFieldNumber = 4,
  };
  // .apipb.UseMultiplePathsConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::UseMultiplePathsConfig& config() const;
  [[nodiscard]] ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::UseMultiplePathsConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE value);
  ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::UseMultiplePathsConfig& _internal_config() const;
  ::apipb::UseMultiplePathsConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.UseMultiplePathsState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::UseMultiplePathsState& state() const;
  [[nodiscard]] ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE release_state();
  ::apipb::UseMultiplePathsState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE value);
  ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::UseMultiplePathsState& _internal_state() const;
  ::apipb::UseMultiplePathsState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // .apipb.Ebgp ebgp = 3;
  [[nodiscard]] bool has_ebgp()
      const;
  void clear_ebgp() ;
  [[nodiscard]] const ::apipb::Ebgp& ebgp() const;
  [[nodiscard]] ::apipb::Ebgp* PROTOBUF_NULLABLE release_ebgp();
  ::apipb::Ebgp* PROTOBUF_NONNULL mutable_ebgp();
  void set_allocated_ebgp(::apipb::Ebgp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ebgp(::apipb::Ebgp* PROTOBUF_NULLABLE value);
  ::apipb::Ebgp* PROTOBUF_NULLABLE unsafe_arena_release_ebgp();

  private:
  const ::apipb::Ebgp& _internal_ebgp() const;
  ::apipb::Ebgp* PROTOBUF_NONNULL _internal_mutable_ebgp();

  public:
  // .apipb.Ibgp ibgp = 4;
  [[nodiscard]] bool has_ibgp()
      const;
  void clear_ibgp() ;
  [[nodiscard]] const ::apipb::Ibgp& ibgp() const;
  [[nodiscard]] ::apipb::Ibgp* PROTOBUF_NULLABLE release_ibgp();
  ::apipb::Ibgp* PROTOBUF_NONNULL mutable_ibgp();
  void set_allocated_ibgp(::apipb::Ibgp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ibgp(::apipb::Ibgp* PROTOBUF_NULLABLE value);
  ::apipb::Ibgp* PROTOBUF_NULLABLE unsafe_arena_release_ibgp();

  private:
  const ::apipb::Ibgp& _internal_ibgp() const;
  ::apipb::Ibgp* PROTOBUF_NONNULL _internal_mutable_ibgp();

  public:
  // @@protoc_insertion_point(class_scope:apipb.UseMultiplePaths)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UseMultiplePaths& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE config_;
    ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE state_;
    ::apipb::Ebgp* PROTOBUF_NULLABLE ebgp_;
    ::apipb::Ibgp* PROTOBUF_NULLABLE ibgp_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Timers final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Timers) */ {
 public:
  inline Timers() : Timers(nullptr) {}
  ~Timers() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Timers* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Timers));
  }
#endif

  template <typename = void>
  explicit constexpr Timers(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Timers(const Timers& from) : Timers(nullptr, from) {}
  inline Timers(Timers&& from) noexcept : Timers(nullptr, ::std::move(from)) {}
  inline Timers& operator=(const Timers& from) {
    CopyFrom(from);
    return *this;
  }
  inline Timers& operator=(Timers&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Timers& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Timers>(&Timers_globals_);
  }
  static constexpr int kIndexInFileMessages = 100;
  friend void swap(Timers& a, Timers& b) { a.Swap(&b); }
  inline void Swap(Timers* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Timers* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Timers* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Timers>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Timers& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Timers& from) { Timers::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Timers* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Timers"; }

  explicit Timers(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Timers(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Timers& from);
  Timers(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Timers&& from) noexcept
      : Timers(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfigFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.TimersConfig config = 1;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::TimersConfig& config() const;
  [[nodiscard]] ::apipb::TimersConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::TimersConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::TimersConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::TimersConfig* PROTOBUF_NULLABLE value);
  ::apipb::TimersConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::TimersConfig& _internal_config() const;
  ::apipb::TimersConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.TimersState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::TimersState& state() const;
  [[nodiscard]] ::apipb::TimersState* PROTOBUF_NULLABLE release_state();
  ::apipb::TimersState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::TimersState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::TimersState* PROTOBUF_NULLABLE value);
  ::apipb::TimersState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::TimersState& _internal_state() const;
  ::apipb::TimersState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Timers)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Timers& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::TimersConfig* PROTOBUF_NULLABLE config_;
    ::apipb::TimersState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Statement final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Statement) */ {
 public:
  inline Statement() : Statement(nullptr) {}
  ~Statement() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Statement* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Statement));
  }
#endif

  template <typename = void>
  explicit constexpr Statement(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Statement(const Statement& from) : Statement(nullptr, from) {}
  inline Statement(Statement&& from) noexcept : Statement(nullptr, ::std::move(from)) {}
  inline Statement& operator=(const Statement& from) {
    CopyFrom(from);
    return *this;
  }
  inline Statement& operator=(Statement&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Statement& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Statement>(&Statement_globals_);
  }
  static constexpr int kIndexInFileMessages = 144;
  friend void swap(Statement& a, Statement& b) { a.Swap(&b); }
  inline void Swap(Statement* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Statement* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Statement* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Statement>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Statement& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Statement& from) { Statement::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Statement* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Statement"; }

  explicit Statement(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Statement(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Statement& from);
  Statement(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Statement&& from) noexcept
      : Statement(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kConditionsFieldNumber = 2,
    kActionsFieldNumber = 3,
  };
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.Conditions conditions = 2;
  [[nodiscard]] bool has_conditions()
      const;
  void clear_conditions() ;
  [[nodiscard]] const ::apipb::Conditions& conditions() const;
  [[nodiscard]] ::apipb::Conditions* PROTOBUF_NULLABLE release_conditions();
  ::apipb::Conditions* PROTOBUF_NONNULL mutable_conditions();
  void set_allocated_conditions(::apipb::Conditions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conditions(::apipb::Conditions* PROTOBUF_NULLABLE value);
  ::apipb::Conditions* PROTOBUF_NULLABLE unsafe_arena_release_conditions();

  private:
  const ::apipb::Conditions& _internal_conditions() const;
  ::apipb::Conditions* PROTOBUF_NONNULL _internal_mutable_conditions();

  public:
  // .apipb.Actions actions = 3;
  [[nodiscard]] bool has_actions()
      const;
  void clear_actions() ;
  [[nodiscard]] const ::apipb::Actions& actions() const;
  [[nodiscard]] ::apipb::Actions* PROTOBUF_NULLABLE release_actions();
  ::apipb::Actions* PROTOBUF_NONNULL mutable_actions();
  void set_allocated_actions(::apipb::Actions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_actions(::apipb::Actions* PROTOBUF_NULLABLE value);
  ::apipb::Actions* PROTOBUF_NULLABLE unsafe_arena_release_actions();

  private:
  const ::apipb::Actions& _internal_actions() const;
  ::apipb::Actions* PROTOBUF_NONNULL _internal_mutable_actions();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Statement)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          2, 28,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Statement& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::apipb::Conditions* PROTOBUF_NULLABLE conditions_;
    ::apipb::Actions* PROTOBUF_NULLABLE actions_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Rpki final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Rpki) */ {
 public:
  inline Rpki() : Rpki(nullptr) {}
  ~Rpki() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Rpki* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Rpki));
  }
#endif

  template <typename = void>
  explicit constexpr Rpki(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Rpki(const Rpki& from) : Rpki(nullptr, from) {}
  inline Rpki(Rpki&& from) noexcept : Rpki(nullptr, ::std::move(from)) {}
  inline Rpki& operator=(const Rpki& from) {
    CopyFrom(from);
    return *this;
  }
  inline Rpki& operator=(Rpki&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Rpki& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Rpki>(&Rpki_globals_);
  }
  static constexpr int kIndexInFileMessages = 155;
  friend void swap(Rpki& a, Rpki& b) { a.Swap(&b); }
  inline void Swap(Rpki* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Rpki* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Rpki* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Rpki>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Rpki& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Rpki& from) { Rpki::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Rpki* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Rpki"; }

  explicit Rpki(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Rpki(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Rpki& from);
  Rpki(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Rpki&& from) noexcept
      : Rpki(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kConfFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.RPKIConf conf = 1;
  [[nodiscard]] bool has_conf()
      const;
  void clear_conf() ;
  [[nodiscard]] const ::apipb::RPKIConf& conf() const;
  [[nodiscard]] ::apipb::RPKIConf* PROTOBUF_NULLABLE release_conf();
  ::apipb::RPKIConf* PROTOBUF_NONNULL mutable_conf();
  void set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value);
  ::apipb::RPKIConf* PROTOBUF_NULLABLE unsafe_arena_release_conf();

  private:
  const ::apipb::RPKIConf& _internal_conf() const;
  ::apipb::RPKIConf* PROTOBUF_NONNULL _internal_mutable_conf();

  public:
  // .apipb.RPKIState state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::RPKIState& state() const;
  [[nodiscard]] ::apipb::RPKIState* PROTOBUF_NULLABLE release_state();
  ::apipb::RPKIState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::RPKIState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::RPKIState* PROTOBUF_NULLABLE value);
  ::apipb::RPKIState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::RPKIState& _internal_state() const;
  ::apipb::RPKIState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Rpki)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Rpki& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::RPKIConf* PROTOBUF_NULLABLE conf_;
    ::apipb::RPKIState* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PeerState final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PeerState) */ {
 public:
  inline PeerState() : PeerState(nullptr) {}
  ~PeerState() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PeerState* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PeerState));
  }
#endif

  template <typename = void>
  explicit constexpr PeerState(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PeerState(const PeerState& from) : PeerState(nullptr, from) {}
  inline PeerState(PeerState&& from) noexcept : PeerState(nullptr, ::std::move(from)) {}
  inline PeerState& operator=(const PeerState& from) {
    CopyFrom(from);
    return *this;
  }
  inline PeerState& operator=(PeerState&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PeerState& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PeerState>(&PeerState_globals_);
  }
  static constexpr int kIndexInFileMessages = 96;
  friend void swap(PeerState& a, PeerState& b) { a.Swap(&b); }
  inline void Swap(PeerState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PeerState* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PeerState* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PeerState>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PeerState& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PeerState& from) { PeerState::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PeerState* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PeerState"; }

  explicit PeerState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PeerState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PeerState& from);
  PeerState(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PeerState&& from) noexcept
      : PeerState(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using SessionState = PeerState_SessionState;
  static constexpr SessionState UNKNOWN = PeerState_SessionState_UNKNOWN;
  static constexpr SessionState IDLE = PeerState_SessionState_IDLE;
  static constexpr SessionState CONNECT = PeerState_SessionState_CONNECT;
  static constexpr SessionState ACTIVE = PeerState_SessionState_ACTIVE;
  static constexpr SessionState OPENSENT = PeerState_SessionState_OPENSENT;
  static constexpr SessionState OPENCONFIRM = PeerState_SessionState_OPENCONFIRM;
  static constexpr SessionState ESTABLISHED = PeerState_SessionState_ESTABLISHED;
  [[nodiscard]] static inline bool SessionState_IsValid(int value) {
    return PeerState_SessionState_IsValid(value);
  }
  static constexpr SessionState SessionState_MIN = PeerState_SessionState_SessionState_MIN;
  static constexpr SessionState SessionState_MAX = PeerState_SessionState_SessionState_MAX;
  static constexpr int SessionState_ARRAYSIZE = PeerState_SessionState_SessionState_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SessionState_descriptor() {
    return PeerState_SessionState_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& SessionState_Name(T value) {
    return PeerState_SessionState_Name(value);
  }
  [[nodiscard]] static inline bool SessionState_Parse(
      ::absl::string_view name, SessionState* PROTOBUF_NONNULL value) {
    return PeerState_SessionState_Parse(name, value);
  }
  using AdminState = PeerState_AdminState;
  static constexpr AdminState UP = PeerState_AdminState_UP;
  static constexpr AdminState DOWN = PeerState_AdminState_DOWN;
  static constexpr AdminState PFX_CT = PeerState_AdminState_PFX_CT;
  [[nodiscard]] static inline bool AdminState_IsValid(int value) {
    return PeerState_AdminState_IsValid(value);
  }
  static constexpr AdminState AdminState_MIN = PeerState_AdminState_AdminState_MIN;
  static constexpr AdminState AdminState_MAX = PeerState_AdminState_AdminState_MAX;
  static constexpr int AdminState_ARRAYSIZE = PeerState_AdminState_AdminState_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL AdminState_descriptor() {
    return PeerState_AdminState_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& AdminState_Name(T value) {
    return PeerState_AdminState_Name(value);
  }
  [[nodiscard]] static inline bool AdminState_Parse(
      ::absl::string_view name, AdminState* PROTOBUF_NONNULL value) {
    return PeerState_AdminState_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kRemoteCapFieldNumber = 18,
    kLocalCapFieldNumber = 19,
    kAuthPasswordFieldNumber = 1,
    kDescriptionFieldNumber = 2,
    kNeighborAddressFieldNumber = 5,
    kPeerGroupFieldNumber = 7,
    kRouterIdFieldNumber = 20,
    kMessagesFieldNumber = 4,
    kQueuesFieldNumber = 9,
    kLocalAsnFieldNumber = 3,
    kPeerAsnFieldNumber = 6,
    kTypeFieldNumber = 8,
    kRemovePrivateFieldNumber = 10,
    kRouteFlapDampingFieldNumber = 11,
    kSendCommunityFieldNumber = 12,
    kSessionStateFieldNumber = 13,
    kAdminStateFieldNumber = 15,
    kOutQFieldNumber = 16,
    kFlopsFieldNumber = 17,
  };
  // repeated .google.protobuf.Any remote_cap = 18;
  [[nodiscard]] int remote_cap_size()
      const;
  private:
  int _internal_remote_cap_size() const;

  public:
  void clear_remote_cap() ;
  [[nodiscard]] const ::google::protobuf::Any& remote_cap(int index) const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NONNULL mutable_remote_cap(int index);
  ::google::protobuf::Any* PROTOBUF_NONNULL add_remote_cap();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
  remote_cap() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
  mutable_remote_cap();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_remote_cap() const;
  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL _internal_mutable_remote_cap();

  public:
  // repeated .google.protobuf.Any local_cap = 19;
  [[nodiscard]] int local_cap_size()
      const;
  private:
  int _internal_local_cap_size() const;

  public:
  void clear_local_cap() ;
  [[nodiscard]] const ::google::protobuf::Any& local_cap(int index) const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NONNULL mutable_local_cap(int index);
  ::google::protobuf::Any* PROTOBUF_NONNULL add_local_cap();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
  local_cap() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
  mutable_local_cap();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_local_cap() const;
  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL _internal_mutable_local_cap();

  public:
  // string auth_password = 1;
  void clear_auth_password() ;
  [[nodiscard]] const ::std::string& auth_password() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_auth_password(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_auth_password();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_auth_password();
  void set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_auth_password() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_auth_password(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_auth_password();

  public:
  // string description = 2;
  void clear_description() ;
  [[nodiscard]] const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // string neighbor_address = 5;
  void clear_neighbor_address() ;
  [[nodiscard]] const ::std::string& neighbor_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_neighbor_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_neighbor_address();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_neighbor_address();
  void set_allocated_neighbor_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_neighbor_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_neighbor_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_neighbor_address();

  public:
  // string peer_group = 7;
  void clear_peer_group() ;
  [[nodiscard]] const ::std::string& peer_group() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_peer_group(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_peer_group();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_peer_group();
  void set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_peer_group() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_peer_group(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // string router_id = 20;
  void clear_router_id() ;
  [[nodiscard]] const ::std::string& router_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_router_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_router_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_router_id();
  void set_allocated_router_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_router_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_router_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_router_id();

  public:
  // .apipb.Messages messages = 4;
  [[nodiscard]] bool has_messages()
      const;
  void clear_messages() ;
  [[nodiscard]] const ::apipb::Messages& messages() const;
  [[nodiscard]] ::apipb::Messages* PROTOBUF_NULLABLE release_messages();
  ::apipb::Messages* PROTOBUF_NONNULL mutable_messages();
  void set_allocated_messages(::apipb::Messages* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_messages(::apipb::Messages* PROTOBUF_NULLABLE value);
  ::apipb::Messages* PROTOBUF_NULLABLE unsafe_arena_release_messages();

  private:
  const ::apipb::Messages& _internal_messages() const;
  ::apipb::Messages* PROTOBUF_NONNULL _internal_mutable_messages();

  public:
  // .apipb.Queues queues = 9;
  [[nodiscard]] bool has_queues()
      const;
  void clear_queues() ;
  [[nodiscard]] const ::apipb::Queues& queues() const;
  [[nodiscard]] ::apipb::Queues* PROTOBUF_NULLABLE release_queues();
  ::apipb::Queues* PROTOBUF_NONNULL mutable_queues();
  void set_allocated_queues(::apipb::Queues* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_queues(::apipb::Queues* PROTOBUF_NULLABLE value);
  ::apipb::Queues* PROTOBUF_NULLABLE unsafe_arena_release_queues();

  private:
  const ::apipb::Queues& _internal_queues() const;
  ::apipb::Queues* PROTOBUF_NONNULL _internal_mutable_queues();

  public:
  // uint32 local_asn = 3;
  void clear_local_asn() ;
  [[nodiscard]] ::uint32_t local_asn() const;
  void set_local_asn(::uint32_t value);

  private:
  ::uint32_t _internal_local_asn() const;
  void _internal_set_local_asn(::uint32_t value);

  public:
  // uint32 peer_asn = 6;
  void clear_peer_asn() ;
  [[nodiscard]] ::uint32_t peer_asn() const;
  void set_peer_asn(::uint32_t value);

  private:
  ::uint32_t _internal_peer_asn() const;
  void _internal_set_peer_asn(::uint32_t value);

  public:
  // .apipb.PeerType type = 8;
  void clear_type() ;
  [[nodiscard]] ::apipb::PeerType type() const;
  void set_type(::apipb::PeerType value);

  private:
  ::apipb::PeerType _internal_type() const;
  void _internal_set_type(::apipb::PeerType value);

  public:
  // .apipb.RemovePrivate remove_private = 10;
  void clear_remove_private() ;
  [[nodiscard]] ::apipb::RemovePrivate remove_private() const;
  void set_remove_private(::apipb::RemovePrivate value);

  private:
  ::apipb::RemovePrivate _internal_remove_private() const;
  void _internal_set_remove_private(::apipb::RemovePrivate value);

  public:
  // bool route_flap_damping = 11;
  void clear_route_flap_damping() ;
  [[nodiscard]] bool route_flap_damping() const;
  void set_route_flap_damping(bool value);

  private:
  bool _internal_route_flap_damping() const;
  void _internal_set_route_flap_damping(bool value);

  public:
  // uint32 send_community = 12;
  void clear_send_community() ;
  [[nodiscard]] ::uint32_t send_community() const;
  void set_send_community(::uint32_t value);

  private:
  ::uint32_t _internal_send_community() const;
  void _internal_set_send_community(::uint32_t value);

  public:
  // .apipb.PeerState.SessionState session_state = 13;
  void clear_session_state() ;
  [[nodiscard]] ::apipb::PeerState_SessionState session_state() const;
  void set_session_state(::apipb::PeerState_SessionState value);

  private:
  ::apipb::PeerState_SessionState _internal_session_state() const;
  void _internal_set_session_state(::apipb::PeerState_SessionState value);

  public:
  // .apipb.PeerState.AdminState admin_state = 15;
  void clear_admin_state() ;
  [[nodiscard]] ::apipb::PeerState_AdminState admin_state() const;
  void set_admin_state(::apipb::PeerState_AdminState value);

  private:
  ::apipb::PeerState_AdminState _internal_admin_state() const;
  void _internal_set_admin_state(::apipb::PeerState_AdminState value);

  public:
  // uint32 out_q = 16;
  void clear_out_q() ;
  [[nodiscard]] ::uint32_t out_q() const;
  void set_out_q(::uint32_t value);

  private:
  ::uint32_t _internal_out_q() const;
  void _internal_set_out_q(::uint32_t value);

  public:
  // uint32 flops = 17;
  void clear_flops() ;
  [[nodiscard]] ::uint32_t flops() const;
  void set_flops(::uint32_t value);

  private:
  ::uint32_t _internal_flops() const;
  void _internal_set_flops(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PeerState)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 19,
                          4, 99,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PeerState& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > remote_cap_;
    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > local_cap_;
    ::google::protobuf::internal::ArenaStringPtr auth_password_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr neighbor_address_;
    ::google::protobuf::internal::ArenaStringPtr peer_group_;
    ::google::protobuf::internal::ArenaStringPtr router_id_;
    ::apipb::Messages* PROTOBUF_NULLABLE messages_;
    ::apipb::Queues* PROTOBUF_NULLABLE queues_;
    ::uint32_t local_asn_;
    ::uint32_t peer_asn_;
    int type_;
    int remove_private_;
    bool route_flap_damping_;
    ::uint32_t send_community_;
    int session_state_;
    int admin_state_;
    ::uint32_t out_q_;
    ::uint32_t flops_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListVrfResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListVrfResponse) */ {
 public:
  inline ListVrfResponse() : ListVrfResponse(nullptr) {}
  ~ListVrfResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListVrfResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListVrfResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListVrfResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListVrfResponse(const ListVrfResponse& from) : ListVrfResponse(nullptr, from) {}
  inline ListVrfResponse(ListVrfResponse&& from) noexcept : ListVrfResponse(nullptr, ::std::move(from)) {}
  inline ListVrfResponse& operator=(const ListVrfResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListVrfResponse& operator=(ListVrfResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListVrfResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListVrfResponse>(&ListVrfResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 43;
  friend void swap(ListVrfResponse& a, ListVrfResponse& b) { a.Swap(&b); }
  inline void Swap(ListVrfResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListVrfResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListVrfResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListVrfResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListVrfResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListVrfResponse& from) { ListVrfResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListVrfResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListVrfResponse"; }

  explicit ListVrfResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListVrfResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListVrfResponse& from);
  ListVrfResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListVrfResponse&& from) noexcept
      : ListVrfResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVrfFieldNumber = 1,
  };
  // .apipb.Vrf vrf = 1;
  [[nodiscard]] bool has_vrf()
      const;
  void clear_vrf() ;
  [[nodiscard]] const ::apipb::Vrf& vrf() const;
  [[nodiscard]] ::apipb::Vrf* PROTOBUF_NULLABLE release_vrf();
  ::apipb::Vrf* PROTOBUF_NONNULL mutable_vrf();
  void set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value);
  ::apipb::Vrf* PROTOBUF_NULLABLE unsafe_arena_release_vrf();

  private:
  const ::apipb::Vrf& _internal_vrf() const;
  ::apipb::Vrf* PROTOBUF_NONNULL _internal_mutable_vrf();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListVrfResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListVrfResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Vrf* PROTOBUF_NULLABLE vrf_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListRpkiTableResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListRpkiTableResponse) */ {
 public:
  inline ListRpkiTableResponse() : ListRpkiTableResponse(nullptr) {}
  ~ListRpkiTableResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListRpkiTableResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListRpkiTableResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListRpkiTableResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListRpkiTableResponse(const ListRpkiTableResponse& from) : ListRpkiTableResponse(nullptr, from) {}
  inline ListRpkiTableResponse(ListRpkiTableResponse&& from) noexcept : ListRpkiTableResponse(nullptr, ::std::move(from)) {}
  inline ListRpkiTableResponse& operator=(const ListRpkiTableResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListRpkiTableResponse& operator=(ListRpkiTableResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListRpkiTableResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListRpkiTableResponse>(&ListRpkiTableResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 70;
  friend void swap(ListRpkiTableResponse& a, ListRpkiTableResponse& b) { a.Swap(&b); }
  inline void Swap(ListRpkiTableResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListRpkiTableResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListRpkiTableResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListRpkiTableResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListRpkiTableResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListRpkiTableResponse& from) { ListRpkiTableResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListRpkiTableResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListRpkiTableResponse"; }

  explicit ListRpkiTableResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListRpkiTableResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListRpkiTableResponse& from);
  ListRpkiTableResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListRpkiTableResponse&& from) noexcept
      : ListRpkiTableResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRoaFieldNumber = 1,
  };
  // .apipb.Roa roa = 1;
  [[nodiscard]] bool has_roa()
      const;
  void clear_roa() ;
  [[nodiscard]] const ::apipb::Roa& roa() const;
  [[nodiscard]] ::apipb::Roa* PROTOBUF_NULLABLE release_roa();
  ::apipb::Roa* PROTOBUF_NONNULL mutable_roa();
  void set_allocated_roa(::apipb::Roa* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_roa(::apipb::Roa* PROTOBUF_NULLABLE value);
  ::apipb::Roa* PROTOBUF_NULLABLE unsafe_arena_release_roa();

  private:
  const ::apipb::Roa& _internal_roa() const;
  ::apipb::Roa* PROTOBUF_NONNULL _internal_mutable_roa();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListRpkiTableResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListRpkiTableResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Roa* PROTOBUF_NULLABLE roa_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListDefinedSetResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListDefinedSetResponse) */ {
 public:
  inline ListDefinedSetResponse() : ListDefinedSetResponse(nullptr) {}
  ~ListDefinedSetResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListDefinedSetResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListDefinedSetResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListDefinedSetResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListDefinedSetResponse(const ListDefinedSetResponse& from) : ListDefinedSetResponse(nullptr, from) {}
  inline ListDefinedSetResponse(ListDefinedSetResponse&& from) noexcept : ListDefinedSetResponse(nullptr, ::std::move(from)) {}
  inline ListDefinedSetResponse& operator=(const ListDefinedSetResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDefinedSetResponse& operator=(ListDefinedSetResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListDefinedSetResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListDefinedSetResponse>(&ListDefinedSetResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 52;
  friend void swap(ListDefinedSetResponse& a, ListDefinedSetResponse& b) { a.Swap(&b); }
  inline void Swap(ListDefinedSetResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListDefinedSetResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListDefinedSetResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListDefinedSetResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListDefinedSetResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListDefinedSetResponse& from) { ListDefinedSetResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListDefinedSetResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListDefinedSetResponse"; }

  explicit ListDefinedSetResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListDefinedSetResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListDefinedSetResponse& from);
  ListDefinedSetResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListDefinedSetResponse&& from) noexcept
      : ListDefinedSetResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDefinedSetFieldNumber = 1,
  };
  // .apipb.DefinedSet defined_set = 1;
  [[nodiscard]] bool has_defined_set()
      const;
  void clear_defined_set() ;
  [[nodiscard]] const ::apipb::DefinedSet& defined_set() const;
  [[nodiscard]] ::apipb::DefinedSet* PROTOBUF_NULLABLE release_defined_set();
  ::apipb::DefinedSet* PROTOBUF_NONNULL mutable_defined_set();
  void set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  ::apipb::DefinedSet* PROTOBUF_NULLABLE unsafe_arena_release_defined_set();

  private:
  const ::apipb::DefinedSet& _internal_defined_set() const;
  ::apipb::DefinedSet* PROTOBUF_NONNULL _internal_mutable_defined_set();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListDefinedSetResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListDefinedSetResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::DefinedSet* PROTOBUF_NULLABLE defined_set_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListBmpResponse_BmpStation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListBmpResponse.BmpStation) */ {
 public:
  inline ListBmpResponse_BmpStation() : ListBmpResponse_BmpStation(nullptr) {}
  ~ListBmpResponse_BmpStation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListBmpResponse_BmpStation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListBmpResponse_BmpStation));
  }
#endif

  template <typename = void>
  explicit constexpr ListBmpResponse_BmpStation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListBmpResponse_BmpStation(const ListBmpResponse_BmpStation& from) : ListBmpResponse_BmpStation(nullptr, from) {}
  inline ListBmpResponse_BmpStation(ListBmpResponse_BmpStation&& from) noexcept : ListBmpResponse_BmpStation(nullptr, ::std::move(from)) {}
  inline ListBmpResponse_BmpStation& operator=(const ListBmpResponse_BmpStation& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListBmpResponse_BmpStation& operator=(ListBmpResponse_BmpStation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListBmpResponse_BmpStation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListBmpResponse_BmpStation>(&ListBmpResponse_BmpStation_globals_);
  }
  static constexpr int kIndexInFileMessages = 79;
  friend void swap(ListBmpResponse_BmpStation& a, ListBmpResponse_BmpStation& b) { a.Swap(&b); }
  inline void Swap(ListBmpResponse_BmpStation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListBmpResponse_BmpStation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListBmpResponse_BmpStation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListBmpResponse_BmpStation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListBmpResponse_BmpStation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListBmpResponse_BmpStation& from) { ListBmpResponse_BmpStation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListBmpResponse_BmpStation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListBmpResponse.BmpStation"; }

  explicit ListBmpResponse_BmpStation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListBmpResponse_BmpStation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListBmpResponse_BmpStation& from);
  ListBmpResponse_BmpStation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListBmpResponse_BmpStation&& from) noexcept
      : ListBmpResponse_BmpStation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Conf = ListBmpResponse_BmpStation_Conf;
  using State = ListBmpResponse_BmpStation_State;

  // accessors -------------------------------------------------------
  enum : int {
    kConfFieldNumber = 1,
    kStateFieldNumber = 2,
  };
  // .apipb.ListBmpResponse.BmpStation.Conf conf = 1;
  [[nodiscard]] bool has_conf()
      const;
  void clear_conf() ;
  [[nodiscard]] const ::apipb::ListBmpResponse_BmpStation_Conf& conf() const;
  [[nodiscard]] ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE release_conf();
  ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL mutable_conf();
  void set_allocated_conf(::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conf(::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE value);
  ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE unsafe_arena_release_conf();

  private:
  const ::apipb::ListBmpResponse_BmpStation_Conf& _internal_conf() const;
  ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL _internal_mutable_conf();

  public:
  // .apipb.ListBmpResponse.BmpStation.State state = 2;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::ListBmpResponse_BmpStation_State& state() const;
  [[nodiscard]] ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE release_state();
  ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE value);
  ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::ListBmpResponse_BmpStation_State& _internal_state() const;
  ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListBmpResponse.BmpStation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListBmpResponse_BmpStation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE conf_;
    ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteDefinedSetRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteDefinedSetRequest) */ {
 public:
  inline DeleteDefinedSetRequest() : DeleteDefinedSetRequest(nullptr) {}
  ~DeleteDefinedSetRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteDefinedSetRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteDefinedSetRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteDefinedSetRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteDefinedSetRequest(const DeleteDefinedSetRequest& from) : DeleteDefinedSetRequest(nullptr, from) {}
  inline DeleteDefinedSetRequest(DeleteDefinedSetRequest&& from) noexcept : DeleteDefinedSetRequest(nullptr, ::std::move(from)) {}
  inline DeleteDefinedSetRequest& operator=(const DeleteDefinedSetRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteDefinedSetRequest& operator=(DeleteDefinedSetRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteDefinedSetRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteDefinedSetRequest>(&DeleteDefinedSetRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 50;
  friend void swap(DeleteDefinedSetRequest& a, DeleteDefinedSetRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteDefinedSetRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteDefinedSetRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteDefinedSetRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteDefinedSetRequest& from) { DeleteDefinedSetRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteDefinedSetRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteDefinedSetRequest"; }

  explicit DeleteDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteDefinedSetRequest& from);
  DeleteDefinedSetRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteDefinedSetRequest&& from) noexcept
      : DeleteDefinedSetRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDefinedSetFieldNumber = 1,
    kAllFieldNumber = 2,
  };
  // .apipb.DefinedSet defined_set = 1;
  [[nodiscard]] bool has_defined_set()
      const;
  void clear_defined_set() ;
  [[nodiscard]] const ::apipb::DefinedSet& defined_set() const;
  [[nodiscard]] ::apipb::DefinedSet* PROTOBUF_NULLABLE release_defined_set();
  ::apipb::DefinedSet* PROTOBUF_NONNULL mutable_defined_set();
  void set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  ::apipb::DefinedSet* PROTOBUF_NULLABLE unsafe_arena_release_defined_set();

  private:
  const ::apipb::DefinedSet& _internal_defined_set() const;
  ::apipb::DefinedSet* PROTOBUF_NONNULL _internal_mutable_defined_set();

  public:
  // bool all = 2;
  void clear_all() ;
  [[nodiscard]] bool all() const;
  void set_all(bool value);

  private:
  bool _internal_all() const;
  void _internal_set_all(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteDefinedSetRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteDefinedSetRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::DefinedSet* PROTOBUF_NULLABLE defined_set_;
    bool all_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddVrfRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddVrfRequest) */ {
 public:
  inline AddVrfRequest() : AddVrfRequest(nullptr) {}
  ~AddVrfRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddVrfRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddVrfRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddVrfRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddVrfRequest(const AddVrfRequest& from) : AddVrfRequest(nullptr, from) {}
  inline AddVrfRequest(AddVrfRequest&& from) noexcept : AddVrfRequest(nullptr, ::std::move(from)) {}
  inline AddVrfRequest& operator=(const AddVrfRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddVrfRequest& operator=(AddVrfRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddVrfRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddVrfRequest>(&AddVrfRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 40;
  friend void swap(AddVrfRequest& a, AddVrfRequest& b) { a.Swap(&b); }
  inline void Swap(AddVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddVrfRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddVrfRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddVrfRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddVrfRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddVrfRequest& from) { AddVrfRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddVrfRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddVrfRequest"; }

  explicit AddVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddVrfRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddVrfRequest& from);
  AddVrfRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddVrfRequest&& from) noexcept
      : AddVrfRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVrfFieldNumber = 1,
  };
  // .apipb.Vrf vrf = 1;
  [[nodiscard]] bool has_vrf()
      const;
  void clear_vrf() ;
  [[nodiscard]] const ::apipb::Vrf& vrf() const;
  [[nodiscard]] ::apipb::Vrf* PROTOBUF_NULLABLE release_vrf();
  ::apipb::Vrf* PROTOBUF_NONNULL mutable_vrf();
  void set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value);
  ::apipb::Vrf* PROTOBUF_NULLABLE unsafe_arena_release_vrf();

  private:
  const ::apipb::Vrf& _internal_vrf() const;
  ::apipb::Vrf* PROTOBUF_NONNULL _internal_mutable_vrf();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddVrfRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddVrfRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Vrf* PROTOBUF_NULLABLE vrf_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddDefinedSetRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddDefinedSetRequest) */ {
 public:
  inline AddDefinedSetRequest() : AddDefinedSetRequest(nullptr) {}
  ~AddDefinedSetRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddDefinedSetRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddDefinedSetRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddDefinedSetRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddDefinedSetRequest(const AddDefinedSetRequest& from) : AddDefinedSetRequest(nullptr, from) {}
  inline AddDefinedSetRequest(AddDefinedSetRequest&& from) noexcept : AddDefinedSetRequest(nullptr, ::std::move(from)) {}
  inline AddDefinedSetRequest& operator=(const AddDefinedSetRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddDefinedSetRequest& operator=(AddDefinedSetRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddDefinedSetRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddDefinedSetRequest>(&AddDefinedSetRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 49;
  friend void swap(AddDefinedSetRequest& a, AddDefinedSetRequest& b) { a.Swap(&b); }
  inline void Swap(AddDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddDefinedSetRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddDefinedSetRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddDefinedSetRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddDefinedSetRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddDefinedSetRequest& from) { AddDefinedSetRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddDefinedSetRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddDefinedSetRequest"; }

  explicit AddDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddDefinedSetRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddDefinedSetRequest& from);
  AddDefinedSetRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddDefinedSetRequest&& from) noexcept
      : AddDefinedSetRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDefinedSetFieldNumber = 1,
  };
  // .apipb.DefinedSet defined_set = 1;
  [[nodiscard]] bool has_defined_set()
      const;
  void clear_defined_set() ;
  [[nodiscard]] const ::apipb::DefinedSet& defined_set() const;
  [[nodiscard]] ::apipb::DefinedSet* PROTOBUF_NULLABLE release_defined_set();
  ::apipb::DefinedSet* PROTOBUF_NONNULL mutable_defined_set();
  void set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value);
  ::apipb::DefinedSet* PROTOBUF_NULLABLE unsafe_arena_release_defined_set();

  private:
  const ::apipb::DefinedSet& _internal_defined_set() const;
  ::apipb::DefinedSet* PROTOBUF_NONNULL _internal_mutable_defined_set();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddDefinedSetRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddDefinedSetRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::DefinedSet* PROTOBUF_NULLABLE defined_set_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Policy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Policy) */ {
 public:
  inline Policy() : Policy(nullptr) {}
  ~Policy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Policy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Policy));
  }
#endif

  template <typename = void>
  explicit constexpr Policy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Policy(const Policy& from) : Policy(nullptr, from) {}
  inline Policy(Policy&& from) noexcept : Policy(nullptr, ::std::move(from)) {}
  inline Policy& operator=(const Policy& from) {
    CopyFrom(from);
    return *this;
  }
  inline Policy& operator=(Policy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Policy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Policy>(&Policy_globals_);
  }
  static constexpr int kIndexInFileMessages = 145;
  friend void swap(Policy& a, Policy& b) { a.Swap(&b); }
  inline void Swap(Policy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Policy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Policy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Policy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Policy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Policy& from) { Policy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Policy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Policy"; }

  explicit Policy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Policy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Policy& from);
  Policy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Policy&& from) noexcept
      : Policy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStatementsFieldNumber = 2,
    kNameFieldNumber = 1,
  };
  // repeated .apipb.Statement statements = 2;
  [[nodiscard]] int statements_size()
      const;
  private:
  int _internal_statements_size() const;

  public:
  void clear_statements() ;
  [[nodiscard]] const ::apipb::Statement& statements(int index) const;
  [[nodiscard]] ::apipb::Statement* PROTOBUF_NONNULL mutable_statements(int index);
  ::apipb::Statement* PROTOBUF_NONNULL add_statements();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Statement>&
  statements() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Statement>* PROTOBUF_NONNULL
  mutable_statements();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Statement>& _internal_statements() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Statement>* PROTOBUF_NONNULL _internal_mutable_statements();

  public:
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Policy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 25,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Policy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Statement > statements_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Path final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Path) */ {
 public:
  inline Path() : Path(nullptr) {}
  ~Path() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Path* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Path));
  }
#endif

  template <typename = void>
  explicit constexpr Path(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Path(const Path& from) : Path(nullptr, from) {}
  inline Path(Path&& from) noexcept : Path(nullptr, ::std::move(from)) {}
  inline Path& operator=(const Path& from) {
    CopyFrom(from);
    return *this;
  }
  inline Path& operator=(Path&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Path& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Path>(&Path_globals_);
  }
  static constexpr int kIndexInFileMessages = 83;
  friend void swap(Path& a, Path& b) { a.Swap(&b); }
  inline void Swap(Path* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Path* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Path* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Path>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Path& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Path& from) { Path::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Path* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Path"; }

  explicit Path(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Path(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Path& from);
  Path(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Path&& from) noexcept
      : Path(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPattrsFieldNumber = 2,
    kPattrsBinaryFieldNumber = 21,
    kSourceIdFieldNumber = 11,
    kNeighborIpFieldNumber = 15,
    kUuidFieldNumber = 16,
    kNlriBinaryFieldNumber = 20,
    kNlriFieldNumber = 1,
    kAgeFieldNumber = 3,
    kValidationFieldNumber = 7,
    kFamilyFieldNumber = 9,
    kBestFieldNumber = 4,
    kIsWithdrawFieldNumber = 5,
    kNoImplicitWithdrawFieldNumber = 8,
    kFilteredFieldNumber = 12,
    kSourceAsnFieldNumber = 10,
    kStaleFieldNumber = 13,
    kIsFromExternalFieldNumber = 14,
    kIsNexthopInvalidFieldNumber = 17,
    kIdentifierFieldNumber = 18,
    kLocalIdentifierFieldNumber = 19,
  };
  // repeated .google.protobuf.Any pattrs = 2;
  [[nodiscard]] int pattrs_size()
      const;
  private:
  int _internal_pattrs_size() const;

  public:
  void clear_pattrs() ;
  [[nodiscard]] const ::google::protobuf::Any& pattrs(int index) const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NONNULL mutable_pattrs(int index);
  ::google::protobuf::Any* PROTOBUF_NONNULL add_pattrs();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
  pattrs() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
  mutable_pattrs();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_pattrs() const;
  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL _internal_mutable_pattrs();

  public:
  // repeated bytes pattrs_binary = 21;
  [[nodiscard]] int pattrs_binary_size()
      const;
  private:
  int _internal_pattrs_binary_size() const;

  public:
  void clear_pattrs_binary() ;
  [[nodiscard]] const ::std::string& pattrs_binary(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_pattrs_binary(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_pattrs_binary(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_pattrs_binary();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_pattrs_binary(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      pattrs_binary() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_pattrs_binary();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_pattrs_binary() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_pattrs_binary();

  public:
  // string source_id = 11;
  void clear_source_id() ;
  [[nodiscard]] const ::std::string& source_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_source_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_source_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_source_id();
  void set_allocated_source_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_source_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_source_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_source_id();

  public:
  // string neighbor_ip = 15;
  void clear_neighbor_ip() ;
  [[nodiscard]] const ::std::string& neighbor_ip() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_neighbor_ip(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_neighbor_ip();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_neighbor_ip();
  void set_allocated_neighbor_ip(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_neighbor_ip() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_neighbor_ip(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_neighbor_ip();

  public:
  // bytes uuid = 16;
  void clear_uuid() ;
  [[nodiscard]] const ::std::string& uuid() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_uuid(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_uuid();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_uuid();
  void set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_uuid() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_uuid(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_uuid();

  public:
  // bytes nlri_binary = 20;
  void clear_nlri_binary() ;
  [[nodiscard]] const ::std::string& nlri_binary() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_nlri_binary(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_nlri_binary();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_nlri_binary();
  void set_allocated_nlri_binary(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_nlri_binary() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_nlri_binary(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_nlri_binary();

  public:
  // .google.protobuf.Any nlri = 1;
  [[nodiscard]] bool has_nlri()
      const;
  void clear_nlri() ;
  [[nodiscard]] const ::google::protobuf::Any& nlri() const;
  [[nodiscard]] ::google::protobuf::Any* PROTOBUF_NULLABLE release_nlri();
  ::google::protobuf::Any* PROTOBUF_NONNULL mutable_nlri();
  void set_allocated_nlri(::google::protobuf::Any* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_nlri(::google::protobuf::Any* PROTOBUF_NULLABLE value);
  ::google::protobuf::Any* PROTOBUF_NULLABLE unsafe_arena_release_nlri();

  private:
  const ::google::protobuf::Any& _internal_nlri() const;
  ::google::protobuf::Any* PROTOBUF_NONNULL _internal_mutable_nlri();

  public:
  // .google.protobuf.Timestamp age = 3;
  [[nodiscard]] bool has_age()
      const;
  void clear_age() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& age() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_age();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_age();
  void set_allocated_age(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_age(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_age();

  private:
  const ::google::protobuf::Timestamp& _internal_age() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_age();

  public:
  // .apipb.Validation validation = 7;
  [[nodiscard]] bool has_validation()
      const;
  void clear_validation() ;
  [[nodiscard]] const ::apipb::Validation& validation() const;
  [[nodiscard]] ::apipb::Validation* PROTOBUF_NULLABLE release_validation();
  ::apipb::Validation* PROTOBUF_NONNULL mutable_validation();
  void set_allocated_validation(::apipb::Validation* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_validation(::apipb::Validation* PROTOBUF_NULLABLE value);
  ::apipb::Validation* PROTOBUF_NULLABLE unsafe_arena_release_validation();

  private:
  const ::apipb::Validation& _internal_validation() const;
  ::apipb::Validation* PROTOBUF_NONNULL _internal_mutable_validation();

  public:
  // .apipb.Family family = 9;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // bool best = 4;
  void clear_best() ;
  [[nodiscard]] bool best() const;
  void set_best(bool value);

  private:
  bool _internal_best() const;
  void _internal_set_best(bool value);

  public:
  // bool is_withdraw = 5;
  void clear_is_withdraw() ;
  [[nodiscard]] bool is_withdraw() const;
  void set_is_withdraw(bool value);

  private:
  bool _internal_is_withdraw() const;
  void _internal_set_is_withdraw(bool value);

  public:
  // bool no_implicit_withdraw = 8;
  void clear_no_implicit_withdraw() ;
  [[nodiscard]] bool no_implicit_withdraw() const;
  void set_no_implicit_withdraw(bool value);

  private:
  bool _internal_no_implicit_withdraw() const;
  void _internal_set_no_implicit_withdraw(bool value);

  public:
  // bool filtered = 12;
  void clear_filtered() ;
  [[nodiscard]] bool filtered() const;
  void set_filtered(bool value);

  private:
  bool _internal_filtered() const;
  void _internal_set_filtered(bool value);

  public:
  // uint32 source_asn = 10;
  void clear_source_asn() ;
  [[nodiscard]] ::uint32_t source_asn() const;
  void set_source_asn(::uint32_t value);

  private:
  ::uint32_t _internal_source_asn() const;
  void _internal_set_source_asn(::uint32_t value);

  public:
  // bool stale = 13;
  void clear_stale() ;
  [[nodiscard]] bool stale() const;
  void set_stale(bool value);

  private:
  bool _internal_stale() const;
  void _internal_set_stale(bool value);

  public:
  // bool is_from_external = 14;
  void clear_is_from_external() ;
  [[nodiscard]] bool is_from_external() const;
  void set_is_from_external(bool value);

  private:
  bool _internal_is_from_external() const;
  void _internal_set_is_from_external(bool value);

  public:
  // bool is_nexthop_invalid = 17;
  void clear_is_nexthop_invalid() ;
  [[nodiscard]] bool is_nexthop_invalid() const;
  void set_is_nexthop_invalid(bool value);

  private:
  bool _internal_is_nexthop_invalid() const;
  void _internal_set_is_nexthop_invalid(bool value);

  public:
  // uint32 identifier = 18;
  void clear_identifier() ;
  [[nodiscard]] ::uint32_t identifier() const;
  void set_identifier(::uint32_t value);

  private:
  ::uint32_t _internal_identifier() const;
  void _internal_set_identifier(::uint32_t value);

  public:
  // uint32 local_identifier = 19;
  void clear_local_identifier() ;
  [[nodiscard]] ::uint32_t local_identifier() const;
  void set_local_identifier(::uint32_t value);

  private:
  ::uint32_t _internal_local_identifier() const;
  void _internal_set_local_identifier(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Path)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 20,
                          5, 55,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Path& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > pattrs_;
    ::google::protobuf::RepeatedPtrField<::std::string> pattrs_binary_;
    ::google::protobuf::internal::ArenaStringPtr source_id_;
    ::google::protobuf::internal::ArenaStringPtr neighbor_ip_;
    ::google::protobuf::internal::ArenaStringPtr uuid_;
    ::google::protobuf::internal::ArenaStringPtr nlri_binary_;
    ::google::protobuf::Any* PROTOBUF_NULLABLE nlri_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE age_;
    ::apipb::Validation* PROTOBUF_NULLABLE validation_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    bool best_;
    bool is_withdraw_;
    bool no_implicit_withdraw_;
    bool filtered_;
    ::uint32_t source_asn_;
    bool stale_;
    bool is_from_external_;
    bool is_nexthop_invalid_;
    ::uint32_t identifier_;
    ::uint32_t local_identifier_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListStatementResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListStatementResponse) */ {
 public:
  inline ListStatementResponse() : ListStatementResponse(nullptr) {}
  ~ListStatementResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListStatementResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListStatementResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListStatementResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListStatementResponse(const ListStatementResponse& from) : ListStatementResponse(nullptr, from) {}
  inline ListStatementResponse(ListStatementResponse&& from) noexcept : ListStatementResponse(nullptr, ::std::move(from)) {}
  inline ListStatementResponse& operator=(const ListStatementResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListStatementResponse& operator=(ListStatementResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListStatementResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListStatementResponse>(&ListStatementResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 56;
  friend void swap(ListStatementResponse& a, ListStatementResponse& b) { a.Swap(&b); }
  inline void Swap(ListStatementResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListStatementResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListStatementResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListStatementResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListStatementResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListStatementResponse& from) { ListStatementResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListStatementResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListStatementResponse"; }

  explicit ListStatementResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListStatementResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListStatementResponse& from);
  ListStatementResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListStatementResponse&& from) noexcept
      : ListStatementResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStatementFieldNumber = 1,
  };
  // .apipb.Statement statement = 1;
  [[nodiscard]] bool has_statement()
      const;
  void clear_statement() ;
  [[nodiscard]] const ::apipb::Statement& statement() const;
  [[nodiscard]] ::apipb::Statement* PROTOBUF_NULLABLE release_statement();
  ::apipb::Statement* PROTOBUF_NONNULL mutable_statement();
  void set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  ::apipb::Statement* PROTOBUF_NULLABLE unsafe_arena_release_statement();

  private:
  const ::apipb::Statement& _internal_statement() const;
  ::apipb::Statement* PROTOBUF_NONNULL _internal_mutable_statement();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListStatementResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListStatementResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Statement* PROTOBUF_NULLABLE statement_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListRpkiResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListRpkiResponse) */ {
 public:
  inline ListRpkiResponse() : ListRpkiResponse(nullptr) {}
  ~ListRpkiResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListRpkiResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListRpkiResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListRpkiResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListRpkiResponse(const ListRpkiResponse& from) : ListRpkiResponse(nullptr, from) {}
  inline ListRpkiResponse(ListRpkiResponse&& from) noexcept : ListRpkiResponse(nullptr, ::std::move(from)) {}
  inline ListRpkiResponse& operator=(const ListRpkiResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListRpkiResponse& operator=(ListRpkiResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListRpkiResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListRpkiResponse>(&ListRpkiResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 65;
  friend void swap(ListRpkiResponse& a, ListRpkiResponse& b) { a.Swap(&b); }
  inline void Swap(ListRpkiResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListRpkiResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListRpkiResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListRpkiResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListRpkiResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListRpkiResponse& from) { ListRpkiResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListRpkiResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListRpkiResponse"; }

  explicit ListRpkiResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListRpkiResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListRpkiResponse& from);
  ListRpkiResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListRpkiResponse&& from) noexcept
      : ListRpkiResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kServerFieldNumber = 1,
  };
  // .apipb.Rpki server = 1;
  [[nodiscard]] bool has_server()
      const;
  void clear_server() ;
  [[nodiscard]] const ::apipb::Rpki& server() const;
  [[nodiscard]] ::apipb::Rpki* PROTOBUF_NULLABLE release_server();
  ::apipb::Rpki* PROTOBUF_NONNULL mutable_server();
  void set_allocated_server(::apipb::Rpki* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_server(::apipb::Rpki* PROTOBUF_NULLABLE value);
  ::apipb::Rpki* PROTOBUF_NULLABLE unsafe_arena_release_server();

  private:
  const ::apipb::Rpki& _internal_server() const;
  ::apipb::Rpki* PROTOBUF_NONNULL _internal_mutable_server();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListRpkiResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListRpkiResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Rpki* PROTOBUF_NULLABLE server_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListBmpResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListBmpResponse) */ {
 public:
  inline ListBmpResponse() : ListBmpResponse(nullptr) {}
  ~ListBmpResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListBmpResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListBmpResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListBmpResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListBmpResponse(const ListBmpResponse& from) : ListBmpResponse(nullptr, from) {}
  inline ListBmpResponse(ListBmpResponse&& from) noexcept : ListBmpResponse(nullptr, ::std::move(from)) {}
  inline ListBmpResponse& operator=(const ListBmpResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListBmpResponse& operator=(ListBmpResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListBmpResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListBmpResponse>(&ListBmpResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 80;
  friend void swap(ListBmpResponse& a, ListBmpResponse& b) { a.Swap(&b); }
  inline void Swap(ListBmpResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListBmpResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListBmpResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListBmpResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListBmpResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListBmpResponse& from) { ListBmpResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListBmpResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListBmpResponse"; }

  explicit ListBmpResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListBmpResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListBmpResponse& from);
  ListBmpResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListBmpResponse&& from) noexcept
      : ListBmpResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using BmpStation = ListBmpResponse_BmpStation;

  // accessors -------------------------------------------------------
  enum : int {
    kStationFieldNumber = 1,
  };
  // .apipb.ListBmpResponse.BmpStation station = 1;
  [[nodiscard]] bool has_station()
      const;
  void clear_station() ;
  [[nodiscard]] const ::apipb::ListBmpResponse_BmpStation& station() const;
  [[nodiscard]] ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE release_station();
  ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NONNULL mutable_station();
  void set_allocated_station(::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_station(::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE value);
  ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE unsafe_arena_release_station();

  private:
  const ::apipb::ListBmpResponse_BmpStation& _internal_station() const;
  ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NONNULL _internal_mutable_station();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListBmpResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListBmpResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE station_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteStatementRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeleteStatementRequest) */ {
 public:
  inline DeleteStatementRequest() : DeleteStatementRequest(nullptr) {}
  ~DeleteStatementRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteStatementRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteStatementRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteStatementRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteStatementRequest(const DeleteStatementRequest& from) : DeleteStatementRequest(nullptr, from) {}
  inline DeleteStatementRequest(DeleteStatementRequest&& from) noexcept : DeleteStatementRequest(nullptr, ::std::move(from)) {}
  inline DeleteStatementRequest& operator=(const DeleteStatementRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteStatementRequest& operator=(DeleteStatementRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteStatementRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteStatementRequest>(&DeleteStatementRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 54;
  friend void swap(DeleteStatementRequest& a, DeleteStatementRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteStatementRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteStatementRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteStatementRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteStatementRequest& from) { DeleteStatementRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteStatementRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeleteStatementRequest"; }

  explicit DeleteStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteStatementRequest& from);
  DeleteStatementRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteStatementRequest&& from) noexcept
      : DeleteStatementRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStatementFieldNumber = 1,
    kAllFieldNumber = 2,
  };
  // .apipb.Statement statement = 1;
  [[nodiscard]] bool has_statement()
      const;
  void clear_statement() ;
  [[nodiscard]] const ::apipb::Statement& statement() const;
  [[nodiscard]] ::apipb::Statement* PROTOBUF_NULLABLE release_statement();
  ::apipb::Statement* PROTOBUF_NONNULL mutable_statement();
  void set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  ::apipb::Statement* PROTOBUF_NULLABLE unsafe_arena_release_statement();

  private:
  const ::apipb::Statement& _internal_statement() const;
  ::apipb::Statement* PROTOBUF_NONNULL _internal_mutable_statement();

  public:
  // bool all = 2;
  void clear_all() ;
  [[nodiscard]] bool all() const;
  void set_all(bool value);

  private:
  bool _internal_all() const;
  void _internal_set_all(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeleteStatementRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteStatementRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Statement* PROTOBUF_NULLABLE statement_;
    bool all_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddStatementRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddStatementRequest) */ {
 public:
  inline AddStatementRequest() : AddStatementRequest(nullptr) {}
  ~AddStatementRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddStatementRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddStatementRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddStatementRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddStatementRequest(const AddStatementRequest& from) : AddStatementRequest(nullptr, from) {}
  inline AddStatementRequest(AddStatementRequest&& from) noexcept : AddStatementRequest(nullptr, ::std::move(from)) {}
  inline AddStatementRequest& operator=(const AddStatementRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddStatementRequest& operator=(AddStatementRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddStatementRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddStatementRequest>(&AddStatementRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 53;
  friend void swap(AddStatementRequest& a, AddStatementRequest& b) { a.Swap(&b); }
  inline void Swap(AddStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddStatementRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddStatementRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddStatementRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddStatementRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddStatementRequest& from) { AddStatementRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddStatementRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddStatementRequest"; }

  explicit AddStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddStatementRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddStatementRequest& from);
  AddStatementRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddStatementRequest&& from) noexcept
      : AddStatementRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStatementFieldNumber = 1,
  };
  // .apipb.Statement statement = 1;
  [[nodiscard]] bool has_statement()
      const;
  void clear_statement() ;
  [[nodiscard]] const ::apipb::Statement& statement() const;
  [[nodiscard]] ::apipb::Statement* PROTOBUF_NULLABLE release_statement();
  ::apipb::Statement* PROTOBUF_NONNULL mutable_statement();
  void set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value);
  ::apipb::Statement* PROTOBUF_NULLABLE unsafe_arena_release_statement();

  private:
  const ::apipb::Statement& _internal_statement() const;
  ::apipb::Statement* PROTOBUF_NONNULL _internal_mutable_statement();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddStatementRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddStatementRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Statement* PROTOBUF_NULLABLE statement_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventResponse_TableEvent final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventResponse.TableEvent) */ {
 public:
  inline WatchEventResponse_TableEvent() : WatchEventResponse_TableEvent(nullptr) {}
  ~WatchEventResponse_TableEvent() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventResponse_TableEvent* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventResponse_TableEvent));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventResponse_TableEvent(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventResponse_TableEvent(const WatchEventResponse_TableEvent& from) : WatchEventResponse_TableEvent(nullptr, from) {}
  inline WatchEventResponse_TableEvent(WatchEventResponse_TableEvent&& from) noexcept : WatchEventResponse_TableEvent(nullptr, ::std::move(from)) {}
  inline WatchEventResponse_TableEvent& operator=(const WatchEventResponse_TableEvent& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventResponse_TableEvent& operator=(WatchEventResponse_TableEvent&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventResponse_TableEvent& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventResponse_TableEvent>(&WatchEventResponse_TableEvent_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(WatchEventResponse_TableEvent& a, WatchEventResponse_TableEvent& b) { a.Swap(&b); }
  inline void Swap(WatchEventResponse_TableEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventResponse_TableEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventResponse_TableEvent* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventResponse_TableEvent>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventResponse_TableEvent& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventResponse_TableEvent& from) { WatchEventResponse_TableEvent::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventResponse_TableEvent* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventResponse.TableEvent"; }

  explicit WatchEventResponse_TableEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventResponse_TableEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventResponse_TableEvent& from);
  WatchEventResponse_TableEvent(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventResponse_TableEvent&& from) noexcept
      : WatchEventResponse_TableEvent(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPathsFieldNumber = 2,
  };
  // repeated .apipb.Path paths = 2;
  [[nodiscard]] int paths_size()
      const;
  private:
  int _internal_paths_size() const;

  public:
  void clear_paths() ;
  [[nodiscard]] const ::apipb::Path& paths(int index) const;
  [[nodiscard]] ::apipb::Path* PROTOBUF_NONNULL mutable_paths(int index);
  ::apipb::Path* PROTOBUF_NONNULL add_paths();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
  paths() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
  mutable_paths();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Path>& _internal_paths() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL _internal_mutable_paths();

  public:
  // @@protoc_insertion_point(class_scope:apipb.WatchEventResponse.TableEvent)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventResponse_TableEvent& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Path > paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RoutingPolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.RoutingPolicy) */ {
 public:
  inline RoutingPolicy() : RoutingPolicy(nullptr) {}
  ~RoutingPolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RoutingPolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RoutingPolicy));
  }
#endif

  template <typename = void>
  explicit constexpr RoutingPolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RoutingPolicy(const RoutingPolicy& from) : RoutingPolicy(nullptr, from) {}
  inline RoutingPolicy(RoutingPolicy&& from) noexcept : RoutingPolicy(nullptr, ::std::move(from)) {}
  inline RoutingPolicy& operator=(const RoutingPolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoutingPolicy& operator=(RoutingPolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RoutingPolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RoutingPolicy>(&RoutingPolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 147;
  friend void swap(RoutingPolicy& a, RoutingPolicy& b) { a.Swap(&b); }
  inline void Swap(RoutingPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoutingPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RoutingPolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RoutingPolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RoutingPolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RoutingPolicy& from) { RoutingPolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RoutingPolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.RoutingPolicy"; }

  explicit RoutingPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RoutingPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RoutingPolicy& from);
  RoutingPolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RoutingPolicy&& from) noexcept
      : RoutingPolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDefinedSetsFieldNumber = 1,
    kPoliciesFieldNumber = 2,
  };
  // repeated .apipb.DefinedSet defined_sets = 1;
  [[nodiscard]] int defined_sets_size()
      const;
  private:
  int _internal_defined_sets_size() const;

  public:
  void clear_defined_sets() ;
  [[nodiscard]] const ::apipb::DefinedSet& defined_sets(int index) const;
  [[nodiscard]] ::apipb::DefinedSet* PROTOBUF_NONNULL mutable_defined_sets(int index);
  ::apipb::DefinedSet* PROTOBUF_NONNULL add_defined_sets();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>&
  defined_sets() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
  mutable_defined_sets();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>& _internal_defined_sets() const;
  ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL _internal_mutable_defined_sets();

  public:
  // repeated .apipb.Policy policies = 2;
  [[nodiscard]] int policies_size()
      const;
  private:
  int _internal_policies_size() const;

  public:
  void clear_policies() ;
  [[nodiscard]] const ::apipb::Policy& policies(int index) const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NONNULL mutable_policies(int index);
  ::apipb::Policy* PROTOBUF_NONNULL add_policies();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
  policies() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
  mutable_policies();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& _internal_policies() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL _internal_mutable_policies();

  public:
  // @@protoc_insertion_point(class_scope:apipb.RoutingPolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RoutingPolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::DefinedSet > defined_sets_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Policy > policies_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PolicyAssignment final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PolicyAssignment) */ {
 public:
  inline PolicyAssignment() : PolicyAssignment(nullptr) {}
  ~PolicyAssignment() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PolicyAssignment* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PolicyAssignment));
  }
#endif

  template <typename = void>
  explicit constexpr PolicyAssignment(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PolicyAssignment(const PolicyAssignment& from) : PolicyAssignment(nullptr, from) {}
  inline PolicyAssignment(PolicyAssignment&& from) noexcept : PolicyAssignment(nullptr, ::std::move(from)) {}
  inline PolicyAssignment& operator=(const PolicyAssignment& from) {
    CopyFrom(from);
    return *this;
  }
  inline PolicyAssignment& operator=(PolicyAssignment&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PolicyAssignment& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PolicyAssignment>(&PolicyAssignment_globals_);
  }
  static constexpr int kIndexInFileMessages = 146;
  friend void swap(PolicyAssignment& a, PolicyAssignment& b) { a.Swap(&b); }
  inline void Swap(PolicyAssignment* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PolicyAssignment* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PolicyAssignment* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PolicyAssignment>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PolicyAssignment& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PolicyAssignment& from) { PolicyAssignment::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PolicyAssignment* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PolicyAssignment"; }

  explicit PolicyAssignment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PolicyAssignment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PolicyAssignment& from);
  PolicyAssignment(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PolicyAssignment&& from) noexcept
      : PolicyAssignment(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPoliciesFieldNumber = 4,
    kNameFieldNumber = 1,
    kDirectionFieldNumber = 2,
    kDefaultActionFieldNumber = 5,
  };
  // repeated .apipb.Policy policies = 4;
  [[nodiscard]] int policies_size()
      const;
  private:
  int _internal_policies_size() const;

  public:
  void clear_policies() ;
  [[nodiscard]] const ::apipb::Policy& policies(int index) const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NONNULL mutable_policies(int index);
  ::apipb::Policy* PROTOBUF_NONNULL add_policies();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
  policies() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
  mutable_policies();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& _internal_policies() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL _internal_mutable_policies();

  public:
  // string name = 1;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .apipb.PolicyDirection direction = 2;
  void clear_direction() ;
  [[nodiscard]] ::apipb::PolicyDirection direction() const;
  void set_direction(::apipb::PolicyDirection value);

  private:
  ::apipb::PolicyDirection _internal_direction() const;
  void _internal_set_direction(::apipb::PolicyDirection value);

  public:
  // .apipb.RouteAction default_action = 5;
  void clear_default_action() ;
  [[nodiscard]] ::apipb::RouteAction default_action() const;
  void set_default_action(::apipb::RouteAction value);

  private:
  ::apipb::RouteAction _internal_default_action() const;
  void _internal_set_default_action(::apipb::RouteAction value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.PolicyAssignment)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          1, 35,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PolicyAssignment& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Policy > policies_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int direction_;
    int default_action_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPolicyResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPolicyResponse) */ {
 public:
  inline ListPolicyResponse() : ListPolicyResponse(nullptr) {}
  ~ListPolicyResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPolicyResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPolicyResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListPolicyResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPolicyResponse(const ListPolicyResponse& from) : ListPolicyResponse(nullptr, from) {}
  inline ListPolicyResponse(ListPolicyResponse&& from) noexcept : ListPolicyResponse(nullptr, ::std::move(from)) {}
  inline ListPolicyResponse& operator=(const ListPolicyResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPolicyResponse& operator=(ListPolicyResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPolicyResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPolicyResponse>(&ListPolicyResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 47;
  friend void swap(ListPolicyResponse& a, ListPolicyResponse& b) { a.Swap(&b); }
  inline void Swap(ListPolicyResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPolicyResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPolicyResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPolicyResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPolicyResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPolicyResponse& from) { ListPolicyResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPolicyResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPolicyResponse"; }

  explicit ListPolicyResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPolicyResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPolicyResponse& from);
  ListPolicyResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPolicyResponse&& from) noexcept
      : ListPolicyResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPolicyFieldNumber = 1,
  };
  // .apipb.Policy policy = 1;
  [[nodiscard]] bool has_policy()
      const;
  void clear_policy() ;
  [[nodiscard]] const ::apipb::Policy& policy() const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NULLABLE release_policy();
  ::apipb::Policy* PROTOBUF_NONNULL mutable_policy();
  void set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  ::apipb::Policy* PROTOBUF_NULLABLE unsafe_arena_release_policy();

  private:
  const ::apipb::Policy& _internal_policy() const;
  ::apipb::Policy* PROTOBUF_NONNULL _internal_mutable_policy();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPolicyResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPolicyResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Policy* PROTOBUF_NULLABLE policy_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Destination final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Destination) */ {
 public:
  inline Destination() : Destination(nullptr) {}
  ~Destination() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Destination* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Destination));
  }
#endif

  template <typename = void>
  explicit constexpr Destination(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Destination(const Destination& from) : Destination(nullptr, from) {}
  inline Destination(Destination&& from) noexcept : Destination(nullptr, ::std::move(from)) {}
  inline Destination& operator=(const Destination& from) {
    CopyFrom(from);
    return *this;
  }
  inline Destination& operator=(Destination&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Destination& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Destination>(&Destination_globals_);
  }
  static constexpr int kIndexInFileMessages = 84;
  friend void swap(Destination& a, Destination& b) { a.Swap(&b); }
  inline void Swap(Destination* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Destination* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Destination* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Destination>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Destination& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Destination& from) { Destination::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Destination* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Destination"; }

  explicit Destination(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Destination(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Destination& from);
  Destination(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Destination&& from) noexcept
      : Destination(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPathsFieldNumber = 2,
    kPrefixFieldNumber = 1,
  };
  // repeated .apipb.Path paths = 2;
  [[nodiscard]] int paths_size()
      const;
  private:
  int _internal_paths_size() const;

  public:
  void clear_paths() ;
  [[nodiscard]] const ::apipb::Path& paths(int index) const;
  [[nodiscard]] ::apipb::Path* PROTOBUF_NONNULL mutable_paths(int index);
  ::apipb::Path* PROTOBUF_NONNULL add_paths();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
  paths() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
  mutable_paths();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Path>& _internal_paths() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL _internal_mutable_paths();

  public:
  // string prefix = 1;
  void clear_prefix() ;
  [[nodiscard]] const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Destination)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 32,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Destination& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Path > paths_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeletePolicyRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeletePolicyRequest) */ {
 public:
  inline DeletePolicyRequest() : DeletePolicyRequest(nullptr) {}
  ~DeletePolicyRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeletePolicyRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeletePolicyRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeletePolicyRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeletePolicyRequest(const DeletePolicyRequest& from) : DeletePolicyRequest(nullptr, from) {}
  inline DeletePolicyRequest(DeletePolicyRequest&& from) noexcept : DeletePolicyRequest(nullptr, ::std::move(from)) {}
  inline DeletePolicyRequest& operator=(const DeletePolicyRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePolicyRequest& operator=(DeletePolicyRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeletePolicyRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeletePolicyRequest>(&DeletePolicyRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 45;
  friend void swap(DeletePolicyRequest& a, DeletePolicyRequest& b) { a.Swap(&b); }
  inline void Swap(DeletePolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeletePolicyRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeletePolicyRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeletePolicyRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeletePolicyRequest& from) { DeletePolicyRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeletePolicyRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeletePolicyRequest"; }

  explicit DeletePolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeletePolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeletePolicyRequest& from);
  DeletePolicyRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeletePolicyRequest&& from) noexcept
      : DeletePolicyRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPolicyFieldNumber = 1,
    kPreserveStatementsFieldNumber = 2,
    kAllFieldNumber = 3,
  };
  // .apipb.Policy policy = 1;
  [[nodiscard]] bool has_policy()
      const;
  void clear_policy() ;
  [[nodiscard]] const ::apipb::Policy& policy() const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NULLABLE release_policy();
  ::apipb::Policy* PROTOBUF_NONNULL mutable_policy();
  void set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  ::apipb::Policy* PROTOBUF_NULLABLE unsafe_arena_release_policy();

  private:
  const ::apipb::Policy& _internal_policy() const;
  ::apipb::Policy* PROTOBUF_NONNULL _internal_mutable_policy();

  public:
  // bool preserve_statements = 2;
  void clear_preserve_statements() ;
  [[nodiscard]] bool preserve_statements() const;
  void set_preserve_statements(bool value);

  private:
  bool _internal_preserve_statements() const;
  void _internal_set_preserve_statements(bool value);

  public:
  // bool all = 3;
  void clear_all() ;
  [[nodiscard]] bool all() const;
  void set_all(bool value);

  private:
  bool _internal_all() const;
  void _internal_set_all(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeletePolicyRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeletePolicyRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Policy* PROTOBUF_NULLABLE policy_;
    bool preserve_statements_;
    bool all_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeletePathRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeletePathRequest) */ {
 public:
  inline DeletePathRequest() : DeletePathRequest(nullptr) {}
  ~DeletePathRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeletePathRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeletePathRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeletePathRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeletePathRequest(const DeletePathRequest& from) : DeletePathRequest(nullptr, from) {}
  inline DeletePathRequest(DeletePathRequest&& from) noexcept : DeletePathRequest(nullptr, ::std::move(from)) {}
  inline DeletePathRequest& operator=(const DeletePathRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePathRequest& operator=(DeletePathRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeletePathRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeletePathRequest>(&DeletePathRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 33;
  friend void swap(DeletePathRequest& a, DeletePathRequest& b) { a.Swap(&b); }
  inline void Swap(DeletePathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeletePathRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeletePathRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeletePathRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeletePathRequest& from) { DeletePathRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeletePathRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeletePathRequest"; }

  explicit DeletePathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeletePathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeletePathRequest& from);
  DeletePathRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeletePathRequest&& from) noexcept
      : DeletePathRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVrfIdFieldNumber = 2,
    kUuidFieldNumber = 5,
    kFamilyFieldNumber = 3,
    kPathFieldNumber = 4,
    kTableTypeFieldNumber = 1,
  };
  // string vrf_id = 2;
  void clear_vrf_id() ;
  [[nodiscard]] const ::std::string& vrf_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_vrf_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_vrf_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_vrf_id();
  void set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_vrf_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_vrf_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_vrf_id();

  public:
  // bytes uuid = 5;
  void clear_uuid() ;
  [[nodiscard]] const ::std::string& uuid() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_uuid(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_uuid();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_uuid();
  void set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_uuid() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_uuid(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_uuid();

  public:
  // .apipb.Family family = 3;
  [[nodiscard]] bool has_family()
      const;
  void clear_family() ;
  [[nodiscard]] const ::apipb::Family& family() const;
  [[nodiscard]] ::apipb::Family* PROTOBUF_NULLABLE release_family();
  ::apipb::Family* PROTOBUF_NONNULL mutable_family();
  void set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value);
  ::apipb::Family* PROTOBUF_NULLABLE unsafe_arena_release_family();

  private:
  const ::apipb::Family& _internal_family() const;
  ::apipb::Family* PROTOBUF_NONNULL _internal_mutable_family();

  public:
  // .apipb.Path path = 4;
  [[nodiscard]] bool has_path()
      const;
  void clear_path() ;
  [[nodiscard]] const ::apipb::Path& path() const;
  [[nodiscard]] ::apipb::Path* PROTOBUF_NULLABLE release_path();
  ::apipb::Path* PROTOBUF_NONNULL mutable_path();
  void set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value);
  ::apipb::Path* PROTOBUF_NULLABLE unsafe_arena_release_path();

  private:
  const ::apipb::Path& _internal_path() const;
  ::apipb::Path* PROTOBUF_NONNULL _internal_mutable_path();

  public:
  // .apipb.TableType table_type = 1;
  void clear_table_type() ;
  [[nodiscard]] ::apipb::TableType table_type() const;
  void set_table_type(::apipb::TableType value);

  private:
  ::apipb::TableType _internal_table_type() const;
  void _internal_set_table_type(::apipb::TableType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeletePathRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          2, 38,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeletePathRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr vrf_id_;
    ::google::protobuf::internal::ArenaStringPtr uuid_;
    ::apipb::Family* PROTOBUF_NULLABLE family_;
    ::apipb::Path* PROTOBUF_NULLABLE path_;
    int table_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPolicyRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPolicyRequest) */ {
 public:
  inline AddPolicyRequest() : AddPolicyRequest(nullptr) {}
  ~AddPolicyRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPolicyRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPolicyRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPolicyRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPolicyRequest(const AddPolicyRequest& from) : AddPolicyRequest(nullptr, from) {}
  inline AddPolicyRequest(AddPolicyRequest&& from) noexcept : AddPolicyRequest(nullptr, ::std::move(from)) {}
  inline AddPolicyRequest& operator=(const AddPolicyRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPolicyRequest& operator=(AddPolicyRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPolicyRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPolicyRequest>(&AddPolicyRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 44;
  friend void swap(AddPolicyRequest& a, AddPolicyRequest& b) { a.Swap(&b); }
  inline void Swap(AddPolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPolicyRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPolicyRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPolicyRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPolicyRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPolicyRequest& from) { AddPolicyRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPolicyRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPolicyRequest"; }

  explicit AddPolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPolicyRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPolicyRequest& from);
  AddPolicyRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPolicyRequest&& from) noexcept
      : AddPolicyRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPolicyFieldNumber = 1,
    kReferExistingStatementsFieldNumber = 2,
  };
  // .apipb.Policy policy = 1;
  [[nodiscard]] bool has_policy()
      const;
  void clear_policy() ;
  [[nodiscard]] const ::apipb::Policy& policy() const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NULLABLE release_policy();
  ::apipb::Policy* PROTOBUF_NONNULL mutable_policy();
  void set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value);
  ::apipb::Policy* PROTOBUF_NULLABLE unsafe_arena_release_policy();

  private:
  const ::apipb::Policy& _internal_policy() const;
  ::apipb::Policy* PROTOBUF_NONNULL _internal_mutable_policy();

  public:
  // bool refer_existing_statements = 2;
  void clear_refer_existing_statements() ;
  [[nodiscard]] bool refer_existing_statements() const;
  void set_refer_existing_statements(bool value);

  private:
  bool _internal_refer_existing_statements() const;
  void _internal_set_refer_existing_statements(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPolicyRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPolicyRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Policy* PROTOBUF_NULLABLE policy_;
    bool refer_existing_statements_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPathStreamRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPathStreamRequest) */ {
 public:
  inline AddPathStreamRequest() : AddPathStreamRequest(nullptr) {}
  ~AddPathStreamRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPathStreamRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPathStreamRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPathStreamRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPathStreamRequest(const AddPathStreamRequest& from) : AddPathStreamRequest(nullptr, from) {}
  inline AddPathStreamRequest(AddPathStreamRequest&& from) noexcept : AddPathStreamRequest(nullptr, ::std::move(from)) {}
  inline AddPathStreamRequest& operator=(const AddPathStreamRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPathStreamRequest& operator=(AddPathStreamRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPathStreamRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPathStreamRequest>(&AddPathStreamRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 37;
  friend void swap(AddPathStreamRequest& a, AddPathStreamRequest& b) { a.Swap(&b); }
  inline void Swap(AddPathStreamRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPathStreamRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPathStreamRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPathStreamRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPathStreamRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPathStreamRequest& from) { AddPathStreamRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPathStreamRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPathStreamRequest"; }

  explicit AddPathStreamRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPathStreamRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPathStreamRequest& from);
  AddPathStreamRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPathStreamRequest&& from) noexcept
      : AddPathStreamRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPathsFieldNumber = 3,
    kVrfIdFieldNumber = 2,
    kTableTypeFieldNumber = 1,
  };
  // repeated .apipb.Path paths = 3;
  [[nodiscard]] int paths_size()
      const;
  private:
  int _internal_paths_size() const;

  public:
  void clear_paths() ;
  [[nodiscard]] const ::apipb::Path& paths(int index) const;
  [[nodiscard]] ::apipb::Path* PROTOBUF_NONNULL mutable_paths(int index);
  ::apipb::Path* PROTOBUF_NONNULL add_paths();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
  paths() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
  mutable_paths();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Path>& _internal_paths() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL _internal_mutable_paths();

  public:
  // string vrf_id = 2;
  void clear_vrf_id() ;
  [[nodiscard]] const ::std::string& vrf_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_vrf_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_vrf_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_vrf_id();
  void set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_vrf_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_vrf_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_vrf_id();

  public:
  // .apipb.TableType table_type = 1;
  void clear_table_type() ;
  [[nodiscard]] ::apipb::TableType table_type() const;
  void set_table_type(::apipb::TableType value);

  private:
  ::apipb::TableType _internal_table_type() const;
  void _internal_set_table_type(::apipb::TableType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPathStreamRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 41,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPathStreamRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Path > paths_;
    ::google::protobuf::internal::ArenaStringPtr vrf_id_;
    int table_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPathRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPathRequest) */ {
 public:
  inline AddPathRequest() : AddPathRequest(nullptr) {}
  ~AddPathRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPathRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPathRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPathRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPathRequest(const AddPathRequest& from) : AddPathRequest(nullptr, from) {}
  inline AddPathRequest(AddPathRequest&& from) noexcept : AddPathRequest(nullptr, ::std::move(from)) {}
  inline AddPathRequest& operator=(const AddPathRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPathRequest& operator=(AddPathRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPathRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPathRequest>(&AddPathRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 31;
  friend void swap(AddPathRequest& a, AddPathRequest& b) { a.Swap(&b); }
  inline void Swap(AddPathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPathRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPathRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPathRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPathRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPathRequest& from) { AddPathRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPathRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPathRequest"; }

  explicit AddPathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPathRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPathRequest& from);
  AddPathRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPathRequest&& from) noexcept
      : AddPathRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVrfIdFieldNumber = 2,
    kPathFieldNumber = 3,
    kTableTypeFieldNumber = 1,
  };
  // string vrf_id = 2;
  void clear_vrf_id() ;
  [[nodiscard]] const ::std::string& vrf_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_vrf_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_vrf_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_vrf_id();
  void set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_vrf_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_vrf_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_vrf_id();

  public:
  // .apipb.Path path = 3;
  [[nodiscard]] bool has_path()
      const;
  void clear_path() ;
  [[nodiscard]] const ::apipb::Path& path() const;
  [[nodiscard]] ::apipb::Path* PROTOBUF_NULLABLE release_path();
  ::apipb::Path* PROTOBUF_NONNULL mutable_path();
  void set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value);
  ::apipb::Path* PROTOBUF_NULLABLE unsafe_arena_release_path();

  private:
  const ::apipb::Path& _internal_path() const;
  ::apipb::Path* PROTOBUF_NONNULL _internal_mutable_path();

  public:
  // .apipb.TableType table_type = 1;
  void clear_table_type() ;
  [[nodiscard]] ::apipb::TableType table_type() const;
  void set_table_type(::apipb::TableType value);

  private:
  ::apipb::TableType _internal_table_type() const;
  void _internal_set_table_type(::apipb::TableType value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPathRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 35,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPathRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr vrf_id_;
    ::apipb::Path* PROTOBUF_NULLABLE path_;
    int table_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SetPolicyAssignmentRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.SetPolicyAssignmentRequest) */ {
 public:
  inline SetPolicyAssignmentRequest() : SetPolicyAssignmentRequest(nullptr) {}
  ~SetPolicyAssignmentRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SetPolicyAssignmentRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SetPolicyAssignmentRequest));
  }
#endif

  template <typename = void>
  explicit constexpr SetPolicyAssignmentRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SetPolicyAssignmentRequest(const SetPolicyAssignmentRequest& from) : SetPolicyAssignmentRequest(nullptr, from) {}
  inline SetPolicyAssignmentRequest(SetPolicyAssignmentRequest&& from) noexcept : SetPolicyAssignmentRequest(nullptr, ::std::move(from)) {}
  inline SetPolicyAssignmentRequest& operator=(const SetPolicyAssignmentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetPolicyAssignmentRequest& operator=(SetPolicyAssignmentRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SetPolicyAssignmentRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SetPolicyAssignmentRequest>(&SetPolicyAssignmentRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 61;
  friend void swap(SetPolicyAssignmentRequest& a, SetPolicyAssignmentRequest& b) { a.Swap(&b); }
  inline void Swap(SetPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SetPolicyAssignmentRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<SetPolicyAssignmentRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SetPolicyAssignmentRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SetPolicyAssignmentRequest& from) { SetPolicyAssignmentRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(SetPolicyAssignmentRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.SetPolicyAssignmentRequest"; }

  explicit SetPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SetPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SetPolicyAssignmentRequest& from);
  SetPolicyAssignmentRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SetPolicyAssignmentRequest&& from) noexcept
      : SetPolicyAssignmentRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAssignmentFieldNumber = 1,
  };
  // .apipb.PolicyAssignment assignment = 1;
  [[nodiscard]] bool has_assignment()
      const;
  void clear_assignment() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& assignment() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_assignment();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_assignment();
  void set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_assignment();

  private:
  const ::apipb::PolicyAssignment& _internal_assignment() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_assignment();

  public:
  // @@protoc_insertion_point(class_scope:apipb.SetPolicyAssignmentRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SetPolicyAssignmentRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE assignment_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SetPoliciesRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.SetPoliciesRequest) */ {
 public:
  inline SetPoliciesRequest() : SetPoliciesRequest(nullptr) {}
  ~SetPoliciesRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SetPoliciesRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SetPoliciesRequest));
  }
#endif

  template <typename = void>
  explicit constexpr SetPoliciesRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SetPoliciesRequest(const SetPoliciesRequest& from) : SetPoliciesRequest(nullptr, from) {}
  inline SetPoliciesRequest(SetPoliciesRequest&& from) noexcept : SetPoliciesRequest(nullptr, ::std::move(from)) {}
  inline SetPoliciesRequest& operator=(const SetPoliciesRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetPoliciesRequest& operator=(SetPoliciesRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SetPoliciesRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SetPoliciesRequest>(&SetPoliciesRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 48;
  friend void swap(SetPoliciesRequest& a, SetPoliciesRequest& b) { a.Swap(&b); }
  inline void Swap(SetPoliciesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetPoliciesRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SetPoliciesRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<SetPoliciesRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SetPoliciesRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SetPoliciesRequest& from) { SetPoliciesRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(SetPoliciesRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.SetPoliciesRequest"; }

  explicit SetPoliciesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SetPoliciesRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SetPoliciesRequest& from);
  SetPoliciesRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SetPoliciesRequest&& from) noexcept
      : SetPoliciesRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDefinedSetsFieldNumber = 1,
    kPoliciesFieldNumber = 2,
    kAssignmentsFieldNumber = 3,
  };
  // repeated .apipb.DefinedSet defined_sets = 1;
  [[nodiscard]] int defined_sets_size()
      const;
  private:
  int _internal_defined_sets_size() const;

  public:
  void clear_defined_sets() ;
  [[nodiscard]] const ::apipb::DefinedSet& defined_sets(int index) const;
  [[nodiscard]] ::apipb::DefinedSet* PROTOBUF_NONNULL mutable_defined_sets(int index);
  ::apipb::DefinedSet* PROTOBUF_NONNULL add_defined_sets();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>&
  defined_sets() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
  mutable_defined_sets();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>& _internal_defined_sets() const;
  ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL _internal_mutable_defined_sets();

  public:
  // repeated .apipb.Policy policies = 2;
  [[nodiscard]] int policies_size()
      const;
  private:
  int _internal_policies_size() const;

  public:
  void clear_policies() ;
  [[nodiscard]] const ::apipb::Policy& policies(int index) const;
  [[nodiscard]] ::apipb::Policy* PROTOBUF_NONNULL mutable_policies(int index);
  ::apipb::Policy* PROTOBUF_NONNULL add_policies();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
  policies() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
  mutable_policies();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& _internal_policies() const;
  ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL _internal_mutable_policies();

  public:
  // repeated .apipb.PolicyAssignment assignments = 3;
  [[nodiscard]] int assignments_size()
      const;
  private:
  int _internal_assignments_size() const;

  public:
  void clear_assignments() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& assignments(int index) const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_assignments(int index);
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL add_assignments();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>&
  assignments() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>* PROTOBUF_NONNULL
  mutable_assignments();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>& _internal_assignments() const;
  ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>* PROTOBUF_NONNULL _internal_mutable_assignments();

  public:
  // @@protoc_insertion_point(class_scope:apipb.SetPoliciesRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SetPoliciesRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::DefinedSet > defined_sets_;
    ::google::protobuf::RepeatedPtrField< ::apipb::Policy > policies_;
    ::google::protobuf::RepeatedPtrField< ::apipb::PolicyAssignment > assignments_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPolicyAssignmentResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPolicyAssignmentResponse) */ {
 public:
  inline ListPolicyAssignmentResponse() : ListPolicyAssignmentResponse(nullptr) {}
  ~ListPolicyAssignmentResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPolicyAssignmentResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPolicyAssignmentResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListPolicyAssignmentResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPolicyAssignmentResponse(const ListPolicyAssignmentResponse& from) : ListPolicyAssignmentResponse(nullptr, from) {}
  inline ListPolicyAssignmentResponse(ListPolicyAssignmentResponse&& from) noexcept : ListPolicyAssignmentResponse(nullptr, ::std::move(from)) {}
  inline ListPolicyAssignmentResponse& operator=(const ListPolicyAssignmentResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPolicyAssignmentResponse& operator=(ListPolicyAssignmentResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPolicyAssignmentResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPolicyAssignmentResponse>(&ListPolicyAssignmentResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 60;
  friend void swap(ListPolicyAssignmentResponse& a, ListPolicyAssignmentResponse& b) { a.Swap(&b); }
  inline void Swap(ListPolicyAssignmentResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPolicyAssignmentResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPolicyAssignmentResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPolicyAssignmentResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPolicyAssignmentResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPolicyAssignmentResponse& from) { ListPolicyAssignmentResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPolicyAssignmentResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPolicyAssignmentResponse"; }

  explicit ListPolicyAssignmentResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPolicyAssignmentResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPolicyAssignmentResponse& from);
  ListPolicyAssignmentResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPolicyAssignmentResponse&& from) noexcept
      : ListPolicyAssignmentResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAssignmentFieldNumber = 1,
  };
  // .apipb.PolicyAssignment assignment = 1;
  [[nodiscard]] bool has_assignment()
      const;
  void clear_assignment() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& assignment() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_assignment();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_assignment();
  void set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_assignment();

  private:
  const ::apipb::PolicyAssignment& _internal_assignment() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_assignment();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPolicyAssignmentResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPolicyAssignmentResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE assignment_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPathResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPathResponse) */ {
 public:
  inline ListPathResponse() : ListPathResponse(nullptr) {}
  ~ListPathResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPathResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPathResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListPathResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPathResponse(const ListPathResponse& from) : ListPathResponse(nullptr, from) {}
  inline ListPathResponse(ListPathResponse&& from) noexcept : ListPathResponse(nullptr, ::std::move(from)) {}
  inline ListPathResponse& operator=(const ListPathResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPathResponse& operator=(ListPathResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPathResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPathResponse>(&ListPathResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 36;
  friend void swap(ListPathResponse& a, ListPathResponse& b) { a.Swap(&b); }
  inline void Swap(ListPathResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPathResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPathResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPathResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPathResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPathResponse& from) { ListPathResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPathResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPathResponse"; }

  explicit ListPathResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPathResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPathResponse& from);
  ListPathResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPathResponse&& from) noexcept
      : ListPathResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDestinationFieldNumber = 1,
  };
  // .apipb.Destination destination = 1;
  [[nodiscard]] bool has_destination()
      const;
  void clear_destination() ;
  [[nodiscard]] const ::apipb::Destination& destination() const;
  [[nodiscard]] ::apipb::Destination* PROTOBUF_NULLABLE release_destination();
  ::apipb::Destination* PROTOBUF_NONNULL mutable_destination();
  void set_allocated_destination(::apipb::Destination* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_destination(::apipb::Destination* PROTOBUF_NULLABLE value);
  ::apipb::Destination* PROTOBUF_NULLABLE unsafe_arena_release_destination();

  private:
  const ::apipb::Destination& _internal_destination() const;
  ::apipb::Destination* PROTOBUF_NONNULL _internal_mutable_destination();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPathResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPathResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Destination* PROTOBUF_NULLABLE destination_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeletePolicyAssignmentRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.DeletePolicyAssignmentRequest) */ {
 public:
  inline DeletePolicyAssignmentRequest() : DeletePolicyAssignmentRequest(nullptr) {}
  ~DeletePolicyAssignmentRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeletePolicyAssignmentRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeletePolicyAssignmentRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeletePolicyAssignmentRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeletePolicyAssignmentRequest(const DeletePolicyAssignmentRequest& from) : DeletePolicyAssignmentRequest(nullptr, from) {}
  inline DeletePolicyAssignmentRequest(DeletePolicyAssignmentRequest&& from) noexcept : DeletePolicyAssignmentRequest(nullptr, ::std::move(from)) {}
  inline DeletePolicyAssignmentRequest& operator=(const DeletePolicyAssignmentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePolicyAssignmentRequest& operator=(DeletePolicyAssignmentRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeletePolicyAssignmentRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeletePolicyAssignmentRequest>(&DeletePolicyAssignmentRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 58;
  friend void swap(DeletePolicyAssignmentRequest& a, DeletePolicyAssignmentRequest& b) { a.Swap(&b); }
  inline void Swap(DeletePolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeletePolicyAssignmentRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeletePolicyAssignmentRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeletePolicyAssignmentRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeletePolicyAssignmentRequest& from) { DeletePolicyAssignmentRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeletePolicyAssignmentRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.DeletePolicyAssignmentRequest"; }

  explicit DeletePolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeletePolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeletePolicyAssignmentRequest& from);
  DeletePolicyAssignmentRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeletePolicyAssignmentRequest&& from) noexcept
      : DeletePolicyAssignmentRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAssignmentFieldNumber = 1,
    kAllFieldNumber = 2,
  };
  // .apipb.PolicyAssignment assignment = 1;
  [[nodiscard]] bool has_assignment()
      const;
  void clear_assignment() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& assignment() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_assignment();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_assignment();
  void set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_assignment();

  private:
  const ::apipb::PolicyAssignment& _internal_assignment() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_assignment();

  public:
  // bool all = 2;
  void clear_all() ;
  [[nodiscard]] bool all() const;
  void set_all(bool value);

  private:
  bool _internal_all() const;
  void _internal_set_all(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.DeletePolicyAssignmentRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeletePolicyAssignmentRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE assignment_;
    bool all_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ApplyPolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ApplyPolicy) */ {
 public:
  inline ApplyPolicy() : ApplyPolicy(nullptr) {}
  ~ApplyPolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ApplyPolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ApplyPolicy));
  }
#endif

  template <typename = void>
  explicit constexpr ApplyPolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ApplyPolicy(const ApplyPolicy& from) : ApplyPolicy(nullptr, from) {}
  inline ApplyPolicy(ApplyPolicy&& from) noexcept : ApplyPolicy(nullptr, ::std::move(from)) {}
  inline ApplyPolicy& operator=(const ApplyPolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline ApplyPolicy& operator=(ApplyPolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ApplyPolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ApplyPolicy>(&ApplyPolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 88;
  friend void swap(ApplyPolicy& a, ApplyPolicy& b) { a.Swap(&b); }
  inline void Swap(ApplyPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ApplyPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ApplyPolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ApplyPolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ApplyPolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ApplyPolicy& from) { ApplyPolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ApplyPolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ApplyPolicy"; }

  explicit ApplyPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ApplyPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ApplyPolicy& from);
  ApplyPolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ApplyPolicy&& from) noexcept
      : ApplyPolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kInPolicyFieldNumber = 1,
    kExportPolicyFieldNumber = 2,
    kImportPolicyFieldNumber = 3,
  };
  // .apipb.PolicyAssignment in_policy = 1;
  [[nodiscard]] bool has_in_policy()
      const;
  void clear_in_policy() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& in_policy() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_in_policy();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_in_policy();
  void set_allocated_in_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_in_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_in_policy();

  private:
  const ::apipb::PolicyAssignment& _internal_in_policy() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_in_policy();

  public:
  // .apipb.PolicyAssignment export_policy = 2;
  [[nodiscard]] bool has_export_policy()
      const;
  void clear_export_policy() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& export_policy() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_export_policy();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_export_policy();
  void set_allocated_export_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_export_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_export_policy();

  private:
  const ::apipb::PolicyAssignment& _internal_export_policy() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_export_policy();

  public:
  // .apipb.PolicyAssignment import_policy = 3;
  [[nodiscard]] bool has_import_policy()
      const;
  void clear_import_policy() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& import_policy() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_import_policy();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_import_policy();
  void set_allocated_import_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_import_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_import_policy();

  private:
  const ::apipb::PolicyAssignment& _internal_import_policy() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_import_policy();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ApplyPolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ApplyPolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE in_policy_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE export_policy_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE import_policy_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPolicyAssignmentRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPolicyAssignmentRequest) */ {
 public:
  inline AddPolicyAssignmentRequest() : AddPolicyAssignmentRequest(nullptr) {}
  ~AddPolicyAssignmentRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPolicyAssignmentRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPolicyAssignmentRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPolicyAssignmentRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPolicyAssignmentRequest(const AddPolicyAssignmentRequest& from) : AddPolicyAssignmentRequest(nullptr, from) {}
  inline AddPolicyAssignmentRequest(AddPolicyAssignmentRequest&& from) noexcept : AddPolicyAssignmentRequest(nullptr, ::std::move(from)) {}
  inline AddPolicyAssignmentRequest& operator=(const AddPolicyAssignmentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPolicyAssignmentRequest& operator=(AddPolicyAssignmentRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPolicyAssignmentRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPolicyAssignmentRequest>(&AddPolicyAssignmentRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 57;
  friend void swap(AddPolicyAssignmentRequest& a, AddPolicyAssignmentRequest& b) { a.Swap(&b); }
  inline void Swap(AddPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPolicyAssignmentRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPolicyAssignmentRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPolicyAssignmentRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPolicyAssignmentRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPolicyAssignmentRequest& from) { AddPolicyAssignmentRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPolicyAssignmentRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPolicyAssignmentRequest"; }

  explicit AddPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPolicyAssignmentRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPolicyAssignmentRequest& from);
  AddPolicyAssignmentRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPolicyAssignmentRequest&& from) noexcept
      : AddPolicyAssignmentRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAssignmentFieldNumber = 1,
  };
  // .apipb.PolicyAssignment assignment = 1;
  [[nodiscard]] bool has_assignment()
      const;
  void clear_assignment() ;
  [[nodiscard]] const ::apipb::PolicyAssignment& assignment() const;
  [[nodiscard]] ::apipb::PolicyAssignment* PROTOBUF_NULLABLE release_assignment();
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL mutable_assignment();
  void set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value);
  ::apipb::PolicyAssignment* PROTOBUF_NULLABLE unsafe_arena_release_assignment();

  private:
  const ::apipb::PolicyAssignment& _internal_assignment() const;
  ::apipb::PolicyAssignment* PROTOBUF_NONNULL _internal_mutable_assignment();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPolicyAssignmentRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPolicyAssignmentRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE assignment_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Global final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Global) */ {
 public:
  inline Global() : Global(nullptr) {}
  ~Global() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Global* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Global));
  }
#endif

  template <typename = void>
  explicit constexpr Global(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Global(const Global& from) : Global(nullptr, from) {}
  inline Global(Global&& from) noexcept : Global(nullptr, ::std::move(from)) {}
  inline Global& operator=(const Global& from) {
    CopyFrom(from);
    return *this;
  }
  inline Global& operator=(Global&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Global& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Global>(&Global_globals_);
  }
  static constexpr int kIndexInFileMessages = 151;
  friend void swap(Global& a, Global& b) { a.Swap(&b); }
  inline void Swap(Global* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Global* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Global* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Global>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Global& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Global& from) { Global::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Global* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Global"; }

  explicit Global(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Global(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Global& from);
  Global(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Global&& from) noexcept
      : Global(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kListenAddressesFieldNumber = 4,
    kFamiliesFieldNumber = 5,
    kRouterIdFieldNumber = 2,
    kBindToDeviceFieldNumber = 12,
    kRouteSelectionOptionsFieldNumber = 7,
    kDefaultRouteDistanceFieldNumber = 8,
    kConfederationFieldNumber = 9,
    kGracefulRestartFieldNumber = 10,
    kApplyPolicyFieldNumber = 11,
    kAsnFieldNumber = 1,
    kListenPortFieldNumber = 3,
    kUseMultiplePathsFieldNumber = 6,
  };
  // repeated string listen_addresses = 4;
  [[nodiscard]] int listen_addresses_size()
      const;
  private:
  int _internal_listen_addresses_size() const;

  public:
  void clear_listen_addresses() ;
  [[nodiscard]] const ::std::string& listen_addresses(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_listen_addresses(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_listen_addresses(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_listen_addresses();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_listen_addresses(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      listen_addresses() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_listen_addresses();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_listen_addresses() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_listen_addresses();

  public:
  // repeated uint32 families = 5;
  [[nodiscard]] int families_size()
      const;
  private:
  int _internal_families_size() const;

  public:
  void clear_families() ;
  [[nodiscard]] ::uint32_t families(int index) const;
  void set_families(int index, ::uint32_t value);
  void add_families(::uint32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint32_t>& families()
      const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL mutable_families();

  private:
  const ::google::protobuf::RepeatedField<::uint32_t>& _internal_families() const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL _internal_mutable_families();

  public:
  // string router_id = 2;
  void clear_router_id() ;
  [[nodiscard]] const ::std::string& router_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_router_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_router_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_router_id();
  void set_allocated_router_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_router_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_router_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_router_id();

  public:
  // string bind_to_device = 12;
  void clear_bind_to_device() ;
  [[nodiscard]] const ::std::string& bind_to_device() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_bind_to_device(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_bind_to_device();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_bind_to_device();
  void set_allocated_bind_to_device(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_bind_to_device() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_bind_to_device(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_bind_to_device();

  public:
  // .apipb.RouteSelectionOptionsConfig route_selection_options = 7;
  [[nodiscard]] bool has_route_selection_options()
      const;
  void clear_route_selection_options() ;
  [[nodiscard]] const ::apipb::RouteSelectionOptionsConfig& route_selection_options() const;
  [[nodiscard]] ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE release_route_selection_options();
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL mutable_route_selection_options();
  void set_allocated_route_selection_options(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_selection_options(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value);
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE unsafe_arena_release_route_selection_options();

  private:
  const ::apipb::RouteSelectionOptionsConfig& _internal_route_selection_options() const;
  ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL _internal_mutable_route_selection_options();

  public:
  // .apipb.DefaultRouteDistance default_route_distance = 8;
  [[nodiscard]] bool has_default_route_distance()
      const;
  void clear_default_route_distance() ;
  [[nodiscard]] const ::apipb::DefaultRouteDistance& default_route_distance() const;
  [[nodiscard]] ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE release_default_route_distance();
  ::apipb::DefaultRouteDistance* PROTOBUF_NONNULL mutable_default_route_distance();
  void set_allocated_default_route_distance(::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_default_route_distance(::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE value);
  ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE unsafe_arena_release_default_route_distance();

  private:
  const ::apipb::DefaultRouteDistance& _internal_default_route_distance() const;
  ::apipb::DefaultRouteDistance* PROTOBUF_NONNULL _internal_mutable_default_route_distance();

  public:
  // .apipb.Confederation confederation = 9;
  [[nodiscard]] bool has_confederation()
      const;
  void clear_confederation() ;
  [[nodiscard]] const ::apipb::Confederation& confederation() const;
  [[nodiscard]] ::apipb::Confederation* PROTOBUF_NULLABLE release_confederation();
  ::apipb::Confederation* PROTOBUF_NONNULL mutable_confederation();
  void set_allocated_confederation(::apipb::Confederation* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_confederation(::apipb::Confederation* PROTOBUF_NULLABLE value);
  ::apipb::Confederation* PROTOBUF_NULLABLE unsafe_arena_release_confederation();

  private:
  const ::apipb::Confederation& _internal_confederation() const;
  ::apipb::Confederation* PROTOBUF_NONNULL _internal_mutable_confederation();

  public:
  // .apipb.GracefulRestart graceful_restart = 10;
  [[nodiscard]] bool has_graceful_restart()
      const;
  void clear_graceful_restart() ;
  [[nodiscard]] const ::apipb::GracefulRestart& graceful_restart() const;
  [[nodiscard]] ::apipb::GracefulRestart* PROTOBUF_NULLABLE release_graceful_restart();
  ::apipb::GracefulRestart* PROTOBUF_NONNULL mutable_graceful_restart();
  void set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  ::apipb::GracefulRestart* PROTOBUF_NULLABLE unsafe_arena_release_graceful_restart();

  private:
  const ::apipb::GracefulRestart& _internal_graceful_restart() const;
  ::apipb::GracefulRestart* PROTOBUF_NONNULL _internal_mutable_graceful_restart();

  public:
  // .apipb.ApplyPolicy apply_policy = 11;
  [[nodiscard]] bool has_apply_policy()
      const;
  void clear_apply_policy() ;
  [[nodiscard]] const ::apipb::ApplyPolicy& apply_policy() const;
  [[nodiscard]] ::apipb::ApplyPolicy* PROTOBUF_NULLABLE release_apply_policy();
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL mutable_apply_policy();
  void set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  ::apipb::ApplyPolicy* PROTOBUF_NULLABLE unsafe_arena_release_apply_policy();

  private:
  const ::apipb::ApplyPolicy& _internal_apply_policy() const;
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL _internal_mutable_apply_policy();

  public:
  // uint32 asn = 1;
  void clear_asn() ;
  [[nodiscard]] ::uint32_t asn() const;
  void set_asn(::uint32_t value);

  private:
  ::uint32_t _internal_asn() const;
  void _internal_set_asn(::uint32_t value);

  public:
  // int32 listen_port = 3;
  void clear_listen_port() ;
  [[nodiscard]] ::int32_t listen_port() const;
  void set_listen_port(::int32_t value);

  private:
  ::int32_t _internal_listen_port() const;
  void _internal_set_listen_port(::int32_t value);

  public:
  // bool use_multiple_paths = 6;
  void clear_use_multiple_paths() ;
  [[nodiscard]] bool use_multiple_paths() const;
  void set_use_multiple_paths(bool value);

  private:
  bool _internal_use_multiple_paths() const;
  void _internal_set_use_multiple_paths(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.Global)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 12,
                          5, 68,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Global& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> listen_addresses_;
    ::google::protobuf::RepeatedField<::uint32_t> families_;
    ::google::protobuf::internal::CachedSize _families_cached_byte_size_;
    ::google::protobuf::internal::ArenaStringPtr router_id_;
    ::google::protobuf::internal::ArenaStringPtr bind_to_device_;
    ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE route_selection_options_;
    ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE default_route_distance_;
    ::apipb::Confederation* PROTOBUF_NULLABLE confederation_;
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE graceful_restart_;
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE apply_policy_;
    ::uint32_t asn_;
    ::int32_t listen_port_;
    bool use_multiple_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AfiSafi final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AfiSafi) */ {
 public:
  inline AfiSafi() : AfiSafi(nullptr) {}
  ~AfiSafi() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AfiSafi* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AfiSafi));
  }
#endif

  template <typename = void>
  explicit constexpr AfiSafi(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AfiSafi(const AfiSafi& from) : AfiSafi(nullptr, from) {}
  inline AfiSafi(AfiSafi&& from) noexcept : AfiSafi(nullptr, ::std::move(from)) {}
  inline AfiSafi& operator=(const AfiSafi& from) {
    CopyFrom(from);
    return *this;
  }
  inline AfiSafi& operator=(AfiSafi&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AfiSafi& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AfiSafi>(&AfiSafi_globals_);
  }
  static constexpr int kIndexInFileMessages = 129;
  friend void swap(AfiSafi& a, AfiSafi& b) { a.Swap(&b); }
  inline void Swap(AfiSafi* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AfiSafi* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AfiSafi* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AfiSafi>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AfiSafi& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AfiSafi& from) { AfiSafi::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AfiSafi* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AfiSafi"; }

  explicit AfiSafi(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AfiSafi(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AfiSafi& from);
  AfiSafi(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AfiSafi&& from) noexcept
      : AfiSafi(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMpGracefulRestartFieldNumber = 1,
    kConfigFieldNumber = 2,
    kStateFieldNumber = 3,
    kApplyPolicyFieldNumber = 4,
    kRouteSelectionOptionsFieldNumber = 5,
    kUseMultiplePathsFieldNumber = 6,
    kPrefixLimitsFieldNumber = 7,
    kRouteTargetMembershipFieldNumber = 8,
    kLongLivedGracefulRestartFieldNumber = 9,
    kAddPathsFieldNumber = 10,
  };
  // .apipb.MpGracefulRestart mp_graceful_restart = 1;
  [[nodiscard]] bool has_mp_graceful_restart()
      const;
  void clear_mp_graceful_restart() ;
  [[nodiscard]] const ::apipb::MpGracefulRestart& mp_graceful_restart() const;
  [[nodiscard]] ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE release_mp_graceful_restart();
  ::apipb::MpGracefulRestart* PROTOBUF_NONNULL mutable_mp_graceful_restart();
  void set_allocated_mp_graceful_restart(::apipb::MpGracefulRestart* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_mp_graceful_restart(::apipb::MpGracefulRestart* PROTOBUF_NULLABLE value);
  ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE unsafe_arena_release_mp_graceful_restart();

  private:
  const ::apipb::MpGracefulRestart& _internal_mp_graceful_restart() const;
  ::apipb::MpGracefulRestart* PROTOBUF_NONNULL _internal_mutable_mp_graceful_restart();

  public:
  // .apipb.AfiSafiConfig config = 2;
  [[nodiscard]] bool has_config()
      const;
  void clear_config() ;
  [[nodiscard]] const ::apipb::AfiSafiConfig& config() const;
  [[nodiscard]] ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE release_config();
  ::apipb::AfiSafiConfig* PROTOBUF_NONNULL mutable_config();
  void set_allocated_config(::apipb::AfiSafiConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_config(::apipb::AfiSafiConfig* PROTOBUF_NULLABLE value);
  ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE unsafe_arena_release_config();

  private:
  const ::apipb::AfiSafiConfig& _internal_config() const;
  ::apipb::AfiSafiConfig* PROTOBUF_NONNULL _internal_mutable_config();

  public:
  // .apipb.AfiSafiState state = 3;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::AfiSafiState& state() const;
  [[nodiscard]] ::apipb::AfiSafiState* PROTOBUF_NULLABLE release_state();
  ::apipb::AfiSafiState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::AfiSafiState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::AfiSafiState* PROTOBUF_NULLABLE value);
  ::apipb::AfiSafiState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::AfiSafiState& _internal_state() const;
  ::apipb::AfiSafiState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // .apipb.ApplyPolicy apply_policy = 4;
  [[nodiscard]] bool has_apply_policy()
      const;
  void clear_apply_policy() ;
  [[nodiscard]] const ::apipb::ApplyPolicy& apply_policy() const;
  [[nodiscard]] ::apipb::ApplyPolicy* PROTOBUF_NULLABLE release_apply_policy();
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL mutable_apply_policy();
  void set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  ::apipb::ApplyPolicy* PROTOBUF_NULLABLE unsafe_arena_release_apply_policy();

  private:
  const ::apipb::ApplyPolicy& _internal_apply_policy() const;
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL _internal_mutable_apply_policy();

  public:
  // .apipb.RouteSelectionOptions route_selection_options = 5;
  [[nodiscard]] bool has_route_selection_options()
      const;
  void clear_route_selection_options() ;
  [[nodiscard]] const ::apipb::RouteSelectionOptions& route_selection_options() const;
  [[nodiscard]] ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE release_route_selection_options();
  ::apipb::RouteSelectionOptions* PROTOBUF_NONNULL mutable_route_selection_options();
  void set_allocated_route_selection_options(::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_selection_options(::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE value);
  ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE unsafe_arena_release_route_selection_options();

  private:
  const ::apipb::RouteSelectionOptions& _internal_route_selection_options() const;
  ::apipb::RouteSelectionOptions* PROTOBUF_NONNULL _internal_mutable_route_selection_options();

  public:
  // .apipb.UseMultiplePaths use_multiple_paths = 6;
  [[nodiscard]] bool has_use_multiple_paths()
      const;
  void clear_use_multiple_paths() ;
  [[nodiscard]] const ::apipb::UseMultiplePaths& use_multiple_paths() const;
  [[nodiscard]] ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE release_use_multiple_paths();
  ::apipb::UseMultiplePaths* PROTOBUF_NONNULL mutable_use_multiple_paths();
  void set_allocated_use_multiple_paths(::apipb::UseMultiplePaths* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_use_multiple_paths(::apipb::UseMultiplePaths* PROTOBUF_NULLABLE value);
  ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE unsafe_arena_release_use_multiple_paths();

  private:
  const ::apipb::UseMultiplePaths& _internal_use_multiple_paths() const;
  ::apipb::UseMultiplePaths* PROTOBUF_NONNULL _internal_mutable_use_multiple_paths();

  public:
  // .apipb.PrefixLimit prefix_limits = 7;
  [[nodiscard]] bool has_prefix_limits()
      const;
  void clear_prefix_limits() ;
  [[nodiscard]] const ::apipb::PrefixLimit& prefix_limits() const;
  [[nodiscard]] ::apipb::PrefixLimit* PROTOBUF_NULLABLE release_prefix_limits();
  ::apipb::PrefixLimit* PROTOBUF_NONNULL mutable_prefix_limits();
  void set_allocated_prefix_limits(::apipb::PrefixLimit* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_prefix_limits(::apipb::PrefixLimit* PROTOBUF_NULLABLE value);
  ::apipb::PrefixLimit* PROTOBUF_NULLABLE unsafe_arena_release_prefix_limits();

  private:
  const ::apipb::PrefixLimit& _internal_prefix_limits() const;
  ::apipb::PrefixLimit* PROTOBUF_NONNULL _internal_mutable_prefix_limits();

  public:
  // .apipb.RouteTargetMembership route_target_membership = 8;
  [[nodiscard]] bool has_route_target_membership()
      const;
  void clear_route_target_membership() ;
  [[nodiscard]] const ::apipb::RouteTargetMembership& route_target_membership() const;
  [[nodiscard]] ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE release_route_target_membership();
  ::apipb::RouteTargetMembership* PROTOBUF_NONNULL mutable_route_target_membership();
  void set_allocated_route_target_membership(::apipb::RouteTargetMembership* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_target_membership(::apipb::RouteTargetMembership* PROTOBUF_NULLABLE value);
  ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE unsafe_arena_release_route_target_membership();

  private:
  const ::apipb::RouteTargetMembership& _internal_route_target_membership() const;
  ::apipb::RouteTargetMembership* PROTOBUF_NONNULL _internal_mutable_route_target_membership();

  public:
  // .apipb.LongLivedGracefulRestart long_lived_graceful_restart = 9;
  [[nodiscard]] bool has_long_lived_graceful_restart()
      const;
  void clear_long_lived_graceful_restart() ;
  [[nodiscard]] const ::apipb::LongLivedGracefulRestart& long_lived_graceful_restart() const;
  [[nodiscard]] ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE release_long_lived_graceful_restart();
  ::apipb::LongLivedGracefulRestart* PROTOBUF_NONNULL mutable_long_lived_graceful_restart();
  void set_allocated_long_lived_graceful_restart(::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_long_lived_graceful_restart(::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE value);
  ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE unsafe_arena_release_long_lived_graceful_restart();

  private:
  const ::apipb::LongLivedGracefulRestart& _internal_long_lived_graceful_restart() const;
  ::apipb::LongLivedGracefulRestart* PROTOBUF_NONNULL _internal_mutable_long_lived_graceful_restart();

  public:
  // .apipb.AddPaths add_paths = 10;
  [[nodiscard]] bool has_add_paths()
      const;
  void clear_add_paths() ;
  [[nodiscard]] const ::apipb::AddPaths& add_paths() const;
  [[nodiscard]] ::apipb::AddPaths* PROTOBUF_NULLABLE release_add_paths();
  ::apipb::AddPaths* PROTOBUF_NONNULL mutable_add_paths();
  void set_allocated_add_paths(::apipb::AddPaths* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_add_paths(::apipb::AddPaths* PROTOBUF_NULLABLE value);
  ::apipb::AddPaths* PROTOBUF_NULLABLE unsafe_arena_release_add_paths();

  private:
  const ::apipb::AddPaths& _internal_add_paths() const;
  ::apipb::AddPaths* PROTOBUF_NONNULL _internal_mutable_add_paths();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AfiSafi)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 10,
                          10, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AfiSafi& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE mp_graceful_restart_;
    ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE config_;
    ::apipb::AfiSafiState* PROTOBUF_NULLABLE state_;
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE apply_policy_;
    ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE route_selection_options_;
    ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE use_multiple_paths_;
    ::apipb::PrefixLimit* PROTOBUF_NULLABLE prefix_limits_;
    ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE route_target_membership_;
    ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE long_lived_graceful_restart_;
    ::apipb::AddPaths* PROTOBUF_NULLABLE add_paths_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StartBgpRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.StartBgpRequest) */ {
 public:
  inline StartBgpRequest() : StartBgpRequest(nullptr) {}
  ~StartBgpRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StartBgpRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StartBgpRequest));
  }
#endif

  template <typename = void>
  explicit constexpr StartBgpRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StartBgpRequest(const StartBgpRequest& from) : StartBgpRequest(nullptr, from) {}
  inline StartBgpRequest(StartBgpRequest&& from) noexcept : StartBgpRequest(nullptr, ::std::move(from)) {}
  inline StartBgpRequest& operator=(const StartBgpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline StartBgpRequest& operator=(StartBgpRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StartBgpRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StartBgpRequest>(&StartBgpRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(StartBgpRequest& a, StartBgpRequest& b) { a.Swap(&b); }
  inline void Swap(StartBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StartBgpRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StartBgpRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StartBgpRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StartBgpRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StartBgpRequest& from) { StartBgpRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StartBgpRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.StartBgpRequest"; }

  explicit StartBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StartBgpRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StartBgpRequest& from);
  StartBgpRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StartBgpRequest&& from) noexcept
      : StartBgpRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kGlobalFieldNumber = 1,
  };
  // .apipb.Global global = 1;
  [[nodiscard]] bool has_global()
      const;
  void clear_global() ;
  [[nodiscard]] const ::apipb::Global& global() const;
  [[nodiscard]] ::apipb::Global* PROTOBUF_NULLABLE release_global();
  ::apipb::Global* PROTOBUF_NONNULL mutable_global();
  void set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value);
  ::apipb::Global* PROTOBUF_NULLABLE unsafe_arena_release_global();

  private:
  const ::apipb::Global& _internal_global() const;
  ::apipb::Global* PROTOBUF_NONNULL _internal_mutable_global();

  public:
  // @@protoc_insertion_point(class_scope:apipb.StartBgpRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StartBgpRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Global* PROTOBUF_NULLABLE global_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PeerGroup final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.PeerGroup) */ {
 public:
  inline PeerGroup() : PeerGroup(nullptr) {}
  ~PeerGroup() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PeerGroup* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PeerGroup));
  }
#endif

  template <typename = void>
  explicit constexpr PeerGroup(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PeerGroup(const PeerGroup& from) : PeerGroup(nullptr, from) {}
  inline PeerGroup(PeerGroup&& from) noexcept : PeerGroup(nullptr, ::std::move(from)) {}
  inline PeerGroup& operator=(const PeerGroup& from) {
    CopyFrom(from);
    return *this;
  }
  inline PeerGroup& operator=(PeerGroup&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PeerGroup& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PeerGroup>(&PeerGroup_globals_);
  }
  static constexpr int kIndexInFileMessages = 86;
  friend void swap(PeerGroup& a, PeerGroup& b) { a.Swap(&b); }
  inline void Swap(PeerGroup* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PeerGroup* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PeerGroup* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PeerGroup>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PeerGroup& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PeerGroup& from) { PeerGroup::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PeerGroup* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.PeerGroup"; }

  explicit PeerGroup(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PeerGroup(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PeerGroup& from);
  PeerGroup(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PeerGroup&& from) noexcept
      : PeerGroup(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAfiSafisFieldNumber = 10,
    kApplyPolicyFieldNumber = 1,
    kConfFieldNumber = 2,
    kEbgpMultihopFieldNumber = 3,
    kRouteReflectorFieldNumber = 4,
    kInfoFieldNumber = 5,
    kTimersFieldNumber = 6,
    kTransportFieldNumber = 7,
    kRouteServerFieldNumber = 8,
    kGracefulRestartFieldNumber = 9,
    kTtlSecurityFieldNumber = 11,
  };
  // repeated .apipb.AfiSafi afi_safis = 10;
  [[nodiscard]] int afi_safis_size()
      const;
  private:
  int _internal_afi_safis_size() const;

  public:
  void clear_afi_safis() ;
  [[nodiscard]] const ::apipb::AfiSafi& afi_safis(int index) const;
  [[nodiscard]] ::apipb::AfiSafi* PROTOBUF_NONNULL mutable_afi_safis(int index);
  ::apipb::AfiSafi* PROTOBUF_NONNULL add_afi_safis();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>&
  afi_safis() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
  mutable_afi_safis();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>& _internal_afi_safis() const;
  ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL _internal_mutable_afi_safis();

  public:
  // .apipb.ApplyPolicy apply_policy = 1;
  [[nodiscard]] bool has_apply_policy()
      const;
  void clear_apply_policy() ;
  [[nodiscard]] const ::apipb::ApplyPolicy& apply_policy() const;
  [[nodiscard]] ::apipb::ApplyPolicy* PROTOBUF_NULLABLE release_apply_policy();
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL mutable_apply_policy();
  void set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  ::apipb::ApplyPolicy* PROTOBUF_NULLABLE unsafe_arena_release_apply_policy();

  private:
  const ::apipb::ApplyPolicy& _internal_apply_policy() const;
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL _internal_mutable_apply_policy();

  public:
  // .apipb.PeerGroupConf conf = 2;
  [[nodiscard]] bool has_conf()
      const;
  void clear_conf() ;
  [[nodiscard]] const ::apipb::PeerGroupConf& conf() const;
  [[nodiscard]] ::apipb::PeerGroupConf* PROTOBUF_NULLABLE release_conf();
  ::apipb::PeerGroupConf* PROTOBUF_NONNULL mutable_conf();
  void set_allocated_conf(::apipb::PeerGroupConf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conf(::apipb::PeerGroupConf* PROTOBUF_NULLABLE value);
  ::apipb::PeerGroupConf* PROTOBUF_NULLABLE unsafe_arena_release_conf();

  private:
  const ::apipb::PeerGroupConf& _internal_conf() const;
  ::apipb::PeerGroupConf* PROTOBUF_NONNULL _internal_mutable_conf();

  public:
  // .apipb.EbgpMultihop ebgp_multihop = 3;
  [[nodiscard]] bool has_ebgp_multihop()
      const;
  void clear_ebgp_multihop() ;
  [[nodiscard]] const ::apipb::EbgpMultihop& ebgp_multihop() const;
  [[nodiscard]] ::apipb::EbgpMultihop* PROTOBUF_NULLABLE release_ebgp_multihop();
  ::apipb::EbgpMultihop* PROTOBUF_NONNULL mutable_ebgp_multihop();
  void set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value);
  ::apipb::EbgpMultihop* PROTOBUF_NULLABLE unsafe_arena_release_ebgp_multihop();

  private:
  const ::apipb::EbgpMultihop& _internal_ebgp_multihop() const;
  ::apipb::EbgpMultihop* PROTOBUF_NONNULL _internal_mutable_ebgp_multihop();

  public:
  // .apipb.RouteReflector route_reflector = 4;
  [[nodiscard]] bool has_route_reflector()
      const;
  void clear_route_reflector() ;
  [[nodiscard]] const ::apipb::RouteReflector& route_reflector() const;
  [[nodiscard]] ::apipb::RouteReflector* PROTOBUF_NULLABLE release_route_reflector();
  ::apipb::RouteReflector* PROTOBUF_NONNULL mutable_route_reflector();
  void set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value);
  ::apipb::RouteReflector* PROTOBUF_NULLABLE unsafe_arena_release_route_reflector();

  private:
  const ::apipb::RouteReflector& _internal_route_reflector() const;
  ::apipb::RouteReflector* PROTOBUF_NONNULL _internal_mutable_route_reflector();

  public:
  // .apipb.PeerGroupState info = 5;
  [[nodiscard]] bool has_info()
      const;
  void clear_info() ;
  [[nodiscard]] const ::apipb::PeerGroupState& info() const;
  [[nodiscard]] ::apipb::PeerGroupState* PROTOBUF_NULLABLE release_info();
  ::apipb::PeerGroupState* PROTOBUF_NONNULL mutable_info();
  void set_allocated_info(::apipb::PeerGroupState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_info(::apipb::PeerGroupState* PROTOBUF_NULLABLE value);
  ::apipb::PeerGroupState* PROTOBUF_NULLABLE unsafe_arena_release_info();

  private:
  const ::apipb::PeerGroupState& _internal_info() const;
  ::apipb::PeerGroupState* PROTOBUF_NONNULL _internal_mutable_info();

  public:
  // .apipb.Timers timers = 6;
  [[nodiscard]] bool has_timers()
      const;
  void clear_timers() ;
  [[nodiscard]] const ::apipb::Timers& timers() const;
  [[nodiscard]] ::apipb::Timers* PROTOBUF_NULLABLE release_timers();
  ::apipb::Timers* PROTOBUF_NONNULL mutable_timers();
  void set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value);
  ::apipb::Timers* PROTOBUF_NULLABLE unsafe_arena_release_timers();

  private:
  const ::apipb::Timers& _internal_timers() const;
  ::apipb::Timers* PROTOBUF_NONNULL _internal_mutable_timers();

  public:
  // .apipb.Transport transport = 7;
  [[nodiscard]] bool has_transport()
      const;
  void clear_transport() ;
  [[nodiscard]] const ::apipb::Transport& transport() const;
  [[nodiscard]] ::apipb::Transport* PROTOBUF_NULLABLE release_transport();
  ::apipb::Transport* PROTOBUF_NONNULL mutable_transport();
  void set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value);
  ::apipb::Transport* PROTOBUF_NULLABLE unsafe_arena_release_transport();

  private:
  const ::apipb::Transport& _internal_transport() const;
  ::apipb::Transport* PROTOBUF_NONNULL _internal_mutable_transport();

  public:
  // .apipb.RouteServer route_server = 8;
  [[nodiscard]] bool has_route_server()
      const;
  void clear_route_server() ;
  [[nodiscard]] const ::apipb::RouteServer& route_server() const;
  [[nodiscard]] ::apipb::RouteServer* PROTOBUF_NULLABLE release_route_server();
  ::apipb::RouteServer* PROTOBUF_NONNULL mutable_route_server();
  void set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value);
  ::apipb::RouteServer* PROTOBUF_NULLABLE unsafe_arena_release_route_server();

  private:
  const ::apipb::RouteServer& _internal_route_server() const;
  ::apipb::RouteServer* PROTOBUF_NONNULL _internal_mutable_route_server();

  public:
  // .apipb.GracefulRestart graceful_restart = 9;
  [[nodiscard]] bool has_graceful_restart()
      const;
  void clear_graceful_restart() ;
  [[nodiscard]] const ::apipb::GracefulRestart& graceful_restart() const;
  [[nodiscard]] ::apipb::GracefulRestart* PROTOBUF_NULLABLE release_graceful_restart();
  ::apipb::GracefulRestart* PROTOBUF_NONNULL mutable_graceful_restart();
  void set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  ::apipb::GracefulRestart* PROTOBUF_NULLABLE unsafe_arena_release_graceful_restart();

  private:
  const ::apipb::GracefulRestart& _internal_graceful_restart() const;
  ::apipb::GracefulRestart* PROTOBUF_NONNULL _internal_mutable_graceful_restart();

  public:
  // .apipb.TtlSecurity ttl_security = 11;
  [[nodiscard]] bool has_ttl_security()
      const;
  void clear_ttl_security() ;
  [[nodiscard]] const ::apipb::TtlSecurity& ttl_security() const;
  [[nodiscard]] ::apipb::TtlSecurity* PROTOBUF_NULLABLE release_ttl_security();
  ::apipb::TtlSecurity* PROTOBUF_NONNULL mutable_ttl_security();
  void set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value);
  ::apipb::TtlSecurity* PROTOBUF_NULLABLE unsafe_arena_release_ttl_security();

  private:
  const ::apipb::TtlSecurity& _internal_ttl_security() const;
  ::apipb::TtlSecurity* PROTOBUF_NONNULL _internal_mutable_ttl_security();

  public:
  // @@protoc_insertion_point(class_scope:apipb.PeerGroup)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          11, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PeerGroup& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::AfiSafi > afi_safis_;
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE apply_policy_;
    ::apipb::PeerGroupConf* PROTOBUF_NULLABLE conf_;
    ::apipb::EbgpMultihop* PROTOBUF_NULLABLE ebgp_multihop_;
    ::apipb::RouteReflector* PROTOBUF_NULLABLE route_reflector_;
    ::apipb::PeerGroupState* PROTOBUF_NULLABLE info_;
    ::apipb::Timers* PROTOBUF_NULLABLE timers_;
    ::apipb::Transport* PROTOBUF_NULLABLE transport_;
    ::apipb::RouteServer* PROTOBUF_NULLABLE route_server_;
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE graceful_restart_;
    ::apipb::TtlSecurity* PROTOBUF_NULLABLE ttl_security_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Peer final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.Peer) */ {
 public:
  inline Peer() : Peer(nullptr) {}
  ~Peer() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Peer* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Peer));
  }
#endif

  template <typename = void>
  explicit constexpr Peer(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Peer(const Peer& from) : Peer(nullptr, from) {}
  inline Peer(Peer&& from) noexcept : Peer(nullptr, ::std::move(from)) {}
  inline Peer& operator=(const Peer& from) {
    CopyFrom(from);
    return *this;
  }
  inline Peer& operator=(Peer&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Peer& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Peer>(&Peer_globals_);
  }
  static constexpr int kIndexInFileMessages = 85;
  friend void swap(Peer& a, Peer& b) { a.Swap(&b); }
  inline void Swap(Peer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Peer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Peer* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Peer>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Peer& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Peer& from) { Peer::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Peer* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.Peer"; }

  explicit Peer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Peer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Peer& from);
  Peer(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Peer&& from) noexcept
      : Peer(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAfiSafisFieldNumber = 10,
    kApplyPolicyFieldNumber = 1,
    kConfFieldNumber = 2,
    kEbgpMultihopFieldNumber = 3,
    kRouteReflectorFieldNumber = 4,
    kStateFieldNumber = 5,
    kTimersFieldNumber = 6,
    kTransportFieldNumber = 7,
    kRouteServerFieldNumber = 8,
    kGracefulRestartFieldNumber = 9,
    kTtlSecurityFieldNumber = 11,
  };
  // repeated .apipb.AfiSafi afi_safis = 10;
  [[nodiscard]] int afi_safis_size()
      const;
  private:
  int _internal_afi_safis_size() const;

  public:
  void clear_afi_safis() ;
  [[nodiscard]] const ::apipb::AfiSafi& afi_safis(int index) const;
  [[nodiscard]] ::apipb::AfiSafi* PROTOBUF_NONNULL mutable_afi_safis(int index);
  ::apipb::AfiSafi* PROTOBUF_NONNULL add_afi_safis();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>&
  afi_safis() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
  mutable_afi_safis();

  private:
  const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>& _internal_afi_safis() const;
  ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL _internal_mutable_afi_safis();

  public:
  // .apipb.ApplyPolicy apply_policy = 1;
  [[nodiscard]] bool has_apply_policy()
      const;
  void clear_apply_policy() ;
  [[nodiscard]] const ::apipb::ApplyPolicy& apply_policy() const;
  [[nodiscard]] ::apipb::ApplyPolicy* PROTOBUF_NULLABLE release_apply_policy();
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL mutable_apply_policy();
  void set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value);
  ::apipb::ApplyPolicy* PROTOBUF_NULLABLE unsafe_arena_release_apply_policy();

  private:
  const ::apipb::ApplyPolicy& _internal_apply_policy() const;
  ::apipb::ApplyPolicy* PROTOBUF_NONNULL _internal_mutable_apply_policy();

  public:
  // .apipb.PeerConf conf = 2;
  [[nodiscard]] bool has_conf()
      const;
  void clear_conf() ;
  [[nodiscard]] const ::apipb::PeerConf& conf() const;
  [[nodiscard]] ::apipb::PeerConf* PROTOBUF_NULLABLE release_conf();
  ::apipb::PeerConf* PROTOBUF_NONNULL mutable_conf();
  void set_allocated_conf(::apipb::PeerConf* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_conf(::apipb::PeerConf* PROTOBUF_NULLABLE value);
  ::apipb::PeerConf* PROTOBUF_NULLABLE unsafe_arena_release_conf();

  private:
  const ::apipb::PeerConf& _internal_conf() const;
  ::apipb::PeerConf* PROTOBUF_NONNULL _internal_mutable_conf();

  public:
  // .apipb.EbgpMultihop ebgp_multihop = 3;
  [[nodiscard]] bool has_ebgp_multihop()
      const;
  void clear_ebgp_multihop() ;
  [[nodiscard]] const ::apipb::EbgpMultihop& ebgp_multihop() const;
  [[nodiscard]] ::apipb::EbgpMultihop* PROTOBUF_NULLABLE release_ebgp_multihop();
  ::apipb::EbgpMultihop* PROTOBUF_NONNULL mutable_ebgp_multihop();
  void set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value);
  ::apipb::EbgpMultihop* PROTOBUF_NULLABLE unsafe_arena_release_ebgp_multihop();

  private:
  const ::apipb::EbgpMultihop& _internal_ebgp_multihop() const;
  ::apipb::EbgpMultihop* PROTOBUF_NONNULL _internal_mutable_ebgp_multihop();

  public:
  // .apipb.RouteReflector route_reflector = 4;
  [[nodiscard]] bool has_route_reflector()
      const;
  void clear_route_reflector() ;
  [[nodiscard]] const ::apipb::RouteReflector& route_reflector() const;
  [[nodiscard]] ::apipb::RouteReflector* PROTOBUF_NULLABLE release_route_reflector();
  ::apipb::RouteReflector* PROTOBUF_NONNULL mutable_route_reflector();
  void set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value);
  ::apipb::RouteReflector* PROTOBUF_NULLABLE unsafe_arena_release_route_reflector();

  private:
  const ::apipb::RouteReflector& _internal_route_reflector() const;
  ::apipb::RouteReflector* PROTOBUF_NONNULL _internal_mutable_route_reflector();

  public:
  // .apipb.PeerState state = 5;
  [[nodiscard]] bool has_state()
      const;
  void clear_state() ;
  [[nodiscard]] const ::apipb::PeerState& state() const;
  [[nodiscard]] ::apipb::PeerState* PROTOBUF_NULLABLE release_state();
  ::apipb::PeerState* PROTOBUF_NONNULL mutable_state();
  void set_allocated_state(::apipb::PeerState* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_state(::apipb::PeerState* PROTOBUF_NULLABLE value);
  ::apipb::PeerState* PROTOBUF_NULLABLE unsafe_arena_release_state();

  private:
  const ::apipb::PeerState& _internal_state() const;
  ::apipb::PeerState* PROTOBUF_NONNULL _internal_mutable_state();

  public:
  // .apipb.Timers timers = 6;
  [[nodiscard]] bool has_timers()
      const;
  void clear_timers() ;
  [[nodiscard]] const ::apipb::Timers& timers() const;
  [[nodiscard]] ::apipb::Timers* PROTOBUF_NULLABLE release_timers();
  ::apipb::Timers* PROTOBUF_NONNULL mutable_timers();
  void set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value);
  ::apipb::Timers* PROTOBUF_NULLABLE unsafe_arena_release_timers();

  private:
  const ::apipb::Timers& _internal_timers() const;
  ::apipb::Timers* PROTOBUF_NONNULL _internal_mutable_timers();

  public:
  // .apipb.Transport transport = 7;
  [[nodiscard]] bool has_transport()
      const;
  void clear_transport() ;
  [[nodiscard]] const ::apipb::Transport& transport() const;
  [[nodiscard]] ::apipb::Transport* PROTOBUF_NULLABLE release_transport();
  ::apipb::Transport* PROTOBUF_NONNULL mutable_transport();
  void set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value);
  ::apipb::Transport* PROTOBUF_NULLABLE unsafe_arena_release_transport();

  private:
  const ::apipb::Transport& _internal_transport() const;
  ::apipb::Transport* PROTOBUF_NONNULL _internal_mutable_transport();

  public:
  // .apipb.RouteServer route_server = 8;
  [[nodiscard]] bool has_route_server()
      const;
  void clear_route_server() ;
  [[nodiscard]] const ::apipb::RouteServer& route_server() const;
  [[nodiscard]] ::apipb::RouteServer* PROTOBUF_NULLABLE release_route_server();
  ::apipb::RouteServer* PROTOBUF_NONNULL mutable_route_server();
  void set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value);
  ::apipb::RouteServer* PROTOBUF_NULLABLE unsafe_arena_release_route_server();

  private:
  const ::apipb::RouteServer& _internal_route_server() const;
  ::apipb::RouteServer* PROTOBUF_NONNULL _internal_mutable_route_server();

  public:
  // .apipb.GracefulRestart graceful_restart = 9;
  [[nodiscard]] bool has_graceful_restart()
      const;
  void clear_graceful_restart() ;
  [[nodiscard]] const ::apipb::GracefulRestart& graceful_restart() const;
  [[nodiscard]] ::apipb::GracefulRestart* PROTOBUF_NULLABLE release_graceful_restart();
  ::apipb::GracefulRestart* PROTOBUF_NONNULL mutable_graceful_restart();
  void set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value);
  ::apipb::GracefulRestart* PROTOBUF_NULLABLE unsafe_arena_release_graceful_restart();

  private:
  const ::apipb::GracefulRestart& _internal_graceful_restart() const;
  ::apipb::GracefulRestart* PROTOBUF_NONNULL _internal_mutable_graceful_restart();

  public:
  // .apipb.TtlSecurity ttl_security = 11;
  [[nodiscard]] bool has_ttl_security()
      const;
  void clear_ttl_security() ;
  [[nodiscard]] const ::apipb::TtlSecurity& ttl_security() const;
  [[nodiscard]] ::apipb::TtlSecurity* PROTOBUF_NULLABLE release_ttl_security();
  ::apipb::TtlSecurity* PROTOBUF_NONNULL mutable_ttl_security();
  void set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value);
  ::apipb::TtlSecurity* PROTOBUF_NULLABLE unsafe_arena_release_ttl_security();

  private:
  const ::apipb::TtlSecurity& _internal_ttl_security() const;
  ::apipb::TtlSecurity* PROTOBUF_NONNULL _internal_mutable_ttl_security();

  public:
  // @@protoc_insertion_point(class_scope:apipb.Peer)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          11, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Peer& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::apipb::AfiSafi > afi_safis_;
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE apply_policy_;
    ::apipb::PeerConf* PROTOBUF_NULLABLE conf_;
    ::apipb::EbgpMultihop* PROTOBUF_NULLABLE ebgp_multihop_;
    ::apipb::RouteReflector* PROTOBUF_NULLABLE route_reflector_;
    ::apipb::PeerState* PROTOBUF_NULLABLE state_;
    ::apipb::Timers* PROTOBUF_NULLABLE timers_;
    ::apipb::Transport* PROTOBUF_NULLABLE transport_;
    ::apipb::RouteServer* PROTOBUF_NULLABLE route_server_;
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE graceful_restart_;
    ::apipb::TtlSecurity* PROTOBUF_NULLABLE ttl_security_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetBgpResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.GetBgpResponse) */ {
 public:
  inline GetBgpResponse() : GetBgpResponse(nullptr) {}
  ~GetBgpResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetBgpResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetBgpResponse));
  }
#endif

  template <typename = void>
  explicit constexpr GetBgpResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetBgpResponse(const GetBgpResponse& from) : GetBgpResponse(nullptr, from) {}
  inline GetBgpResponse(GetBgpResponse&& from) noexcept : GetBgpResponse(nullptr, ::std::move(from)) {}
  inline GetBgpResponse& operator=(const GetBgpResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetBgpResponse& operator=(GetBgpResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetBgpResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetBgpResponse>(&GetBgpResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(GetBgpResponse& a, GetBgpResponse& b) { a.Swap(&b); }
  inline void Swap(GetBgpResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetBgpResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetBgpResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetBgpResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetBgpResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetBgpResponse& from) { GetBgpResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetBgpResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.GetBgpResponse"; }

  explicit GetBgpResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetBgpResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetBgpResponse& from);
  GetBgpResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetBgpResponse&& from) noexcept
      : GetBgpResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kGlobalFieldNumber = 1,
  };
  // .apipb.Global global = 1;
  [[nodiscard]] bool has_global()
      const;
  void clear_global() ;
  [[nodiscard]] const ::apipb::Global& global() const;
  [[nodiscard]] ::apipb::Global* PROTOBUF_NULLABLE release_global();
  ::apipb::Global* PROTOBUF_NONNULL mutable_global();
  void set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value);
  ::apipb::Global* PROTOBUF_NULLABLE unsafe_arena_release_global();

  private:
  const ::apipb::Global& _internal_global() const;
  ::apipb::Global* PROTOBUF_NONNULL _internal_mutable_global();

  public:
  // @@protoc_insertion_point(class_scope:apipb.GetBgpResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetBgpResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Global* PROTOBUF_NULLABLE global_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventResponse_PeerEvent final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventResponse.PeerEvent) */ {
 public:
  inline WatchEventResponse_PeerEvent() : WatchEventResponse_PeerEvent(nullptr) {}
  ~WatchEventResponse_PeerEvent() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventResponse_PeerEvent* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventResponse_PeerEvent));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventResponse_PeerEvent(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventResponse_PeerEvent(const WatchEventResponse_PeerEvent& from) : WatchEventResponse_PeerEvent(nullptr, from) {}
  inline WatchEventResponse_PeerEvent(WatchEventResponse_PeerEvent&& from) noexcept : WatchEventResponse_PeerEvent(nullptr, ::std::move(from)) {}
  inline WatchEventResponse_PeerEvent& operator=(const WatchEventResponse_PeerEvent& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventResponse_PeerEvent& operator=(WatchEventResponse_PeerEvent&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventResponse_PeerEvent& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventResponse_PeerEvent>(&WatchEventResponse_PeerEvent_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(WatchEventResponse_PeerEvent& a, WatchEventResponse_PeerEvent& b) { a.Swap(&b); }
  inline void Swap(WatchEventResponse_PeerEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventResponse_PeerEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventResponse_PeerEvent* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventResponse_PeerEvent>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventResponse_PeerEvent& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventResponse_PeerEvent& from) { WatchEventResponse_PeerEvent::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventResponse_PeerEvent* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventResponse.PeerEvent"; }

  explicit WatchEventResponse_PeerEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventResponse_PeerEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventResponse_PeerEvent& from);
  WatchEventResponse_PeerEvent(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventResponse_PeerEvent&& from) noexcept
      : WatchEventResponse_PeerEvent(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Type = WatchEventResponse_PeerEvent_Type;
  static constexpr Type UNKNOWN = WatchEventResponse_PeerEvent_Type_UNKNOWN;
  static constexpr Type INIT = WatchEventResponse_PeerEvent_Type_INIT;
  static constexpr Type END_OF_INIT = WatchEventResponse_PeerEvent_Type_END_OF_INIT;
  static constexpr Type STATE = WatchEventResponse_PeerEvent_Type_STATE;
  [[nodiscard]] static inline bool Type_IsValid(int value) {
    return WatchEventResponse_PeerEvent_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = WatchEventResponse_PeerEvent_Type_Type_MIN;
  static constexpr Type Type_MAX = WatchEventResponse_PeerEvent_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = WatchEventResponse_PeerEvent_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
    return WatchEventResponse_PeerEvent_Type_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Type_Name(T value) {
    return WatchEventResponse_PeerEvent_Type_Name(value);
  }
  [[nodiscard]] static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return WatchEventResponse_PeerEvent_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // .apipb.Peer peer = 2;
  [[nodiscard]] bool has_peer()
      const;
  void clear_peer() ;
  [[nodiscard]] const ::apipb::Peer& peer() const;
  [[nodiscard]] ::apipb::Peer* PROTOBUF_NULLABLE release_peer();
  ::apipb::Peer* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  ::apipb::Peer* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::Peer& _internal_peer() const;
  ::apipb::Peer* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // .apipb.WatchEventResponse.PeerEvent.Type type = 1;
  void clear_type() ;
  [[nodiscard]] ::apipb::WatchEventResponse_PeerEvent_Type type() const;
  void set_type(::apipb::WatchEventResponse_PeerEvent_Type value);

  private:
  ::apipb::WatchEventResponse_PeerEvent_Type _internal_type() const;
  void _internal_set_type(::apipb::WatchEventResponse_PeerEvent_Type value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.WatchEventResponse.PeerEvent)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventResponse_PeerEvent& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Peer* PROTOBUF_NULLABLE peer_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdatePeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UpdatePeerRequest) */ {
 public:
  inline UpdatePeerRequest() : UpdatePeerRequest(nullptr) {}
  ~UpdatePeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdatePeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdatePeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr UpdatePeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdatePeerRequest(const UpdatePeerRequest& from) : UpdatePeerRequest(nullptr, from) {}
  inline UpdatePeerRequest(UpdatePeerRequest&& from) noexcept : UpdatePeerRequest(nullptr, ::std::move(from)) {}
  inline UpdatePeerRequest& operator=(const UpdatePeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdatePeerRequest& operator=(UpdatePeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdatePeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdatePeerRequest>(&UpdatePeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(UpdatePeerRequest& a, UpdatePeerRequest& b) { a.Swap(&b); }
  inline void Swap(UpdatePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdatePeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdatePeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdatePeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdatePeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdatePeerRequest& from) { UpdatePeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdatePeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UpdatePeerRequest"; }

  explicit UpdatePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdatePeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdatePeerRequest& from);
  UpdatePeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdatePeerRequest&& from) noexcept
      : UpdatePeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 1,
    kDoSoftResetInFieldNumber = 2,
  };
  // .apipb.Peer peer = 1;
  [[nodiscard]] bool has_peer()
      const;
  void clear_peer() ;
  [[nodiscard]] const ::apipb::Peer& peer() const;
  [[nodiscard]] ::apipb::Peer* PROTOBUF_NULLABLE release_peer();
  ::apipb::Peer* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  ::apipb::Peer* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::Peer& _internal_peer() const;
  ::apipb::Peer* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // bool do_soft_reset_in = 2;
  void clear_do_soft_reset_in() ;
  [[nodiscard]] bool do_soft_reset_in() const;
  void set_do_soft_reset_in(bool value);

  private:
  bool _internal_do_soft_reset_in() const;
  void _internal_set_do_soft_reset_in(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UpdatePeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdatePeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Peer* PROTOBUF_NULLABLE peer_;
    bool do_soft_reset_in_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdatePeerGroupRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.UpdatePeerGroupRequest) */ {
 public:
  inline UpdatePeerGroupRequest() : UpdatePeerGroupRequest(nullptr) {}
  ~UpdatePeerGroupRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdatePeerGroupRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdatePeerGroupRequest));
  }
#endif

  template <typename = void>
  explicit constexpr UpdatePeerGroupRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdatePeerGroupRequest(const UpdatePeerGroupRequest& from) : UpdatePeerGroupRequest(nullptr, from) {}
  inline UpdatePeerGroupRequest(UpdatePeerGroupRequest&& from) noexcept : UpdatePeerGroupRequest(nullptr, ::std::move(from)) {}
  inline UpdatePeerGroupRequest& operator=(const UpdatePeerGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdatePeerGroupRequest& operator=(UpdatePeerGroupRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdatePeerGroupRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdatePeerGroupRequest>(&UpdatePeerGroupRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 23;
  friend void swap(UpdatePeerGroupRequest& a, UpdatePeerGroupRequest& b) { a.Swap(&b); }
  inline void Swap(UpdatePeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdatePeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdatePeerGroupRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdatePeerGroupRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdatePeerGroupRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdatePeerGroupRequest& from) { UpdatePeerGroupRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdatePeerGroupRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.UpdatePeerGroupRequest"; }

  explicit UpdatePeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdatePeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdatePeerGroupRequest& from);
  UpdatePeerGroupRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdatePeerGroupRequest&& from) noexcept
      : UpdatePeerGroupRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerGroupFieldNumber = 1,
    kDoSoftResetInFieldNumber = 2,
  };
  // .apipb.PeerGroup peer_group = 1;
  [[nodiscard]] bool has_peer_group()
      const;
  void clear_peer_group() ;
  [[nodiscard]] const ::apipb::PeerGroup& peer_group() const;
  [[nodiscard]] ::apipb::PeerGroup* PROTOBUF_NULLABLE release_peer_group();
  ::apipb::PeerGroup* PROTOBUF_NONNULL mutable_peer_group();
  void set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  ::apipb::PeerGroup* PROTOBUF_NULLABLE unsafe_arena_release_peer_group();

  private:
  const ::apipb::PeerGroup& _internal_peer_group() const;
  ::apipb::PeerGroup* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // bool do_soft_reset_in = 2;
  void clear_do_soft_reset_in() ;
  [[nodiscard]] bool do_soft_reset_in() const;
  void set_do_soft_reset_in(bool value);

  private:
  bool _internal_do_soft_reset_in() const;
  void _internal_set_do_soft_reset_in(bool value);

  public:
  // @@protoc_insertion_point(class_scope:apipb.UpdatePeerGroupRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdatePeerGroupRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PeerGroup* PROTOBUF_NULLABLE peer_group_;
    bool do_soft_reset_in_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPeerResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPeerResponse) */ {
 public:
  inline ListPeerResponse() : ListPeerResponse(nullptr) {}
  ~ListPeerResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPeerResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPeerResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListPeerResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPeerResponse(const ListPeerResponse& from) : ListPeerResponse(nullptr, from) {}
  inline ListPeerResponse(ListPeerResponse&& from) noexcept : ListPeerResponse(nullptr, ::std::move(from)) {}
  inline ListPeerResponse& operator=(const ListPeerResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPeerResponse& operator=(ListPeerResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPeerResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPeerResponse>(&ListPeerResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(ListPeerResponse& a, ListPeerResponse& b) { a.Swap(&b); }
  inline void Swap(ListPeerResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPeerResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPeerResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPeerResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPeerResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPeerResponse& from) { ListPeerResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPeerResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPeerResponse"; }

  explicit ListPeerResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPeerResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPeerResponse& from);
  ListPeerResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPeerResponse&& from) noexcept
      : ListPeerResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 1,
  };
  // .apipb.Peer peer = 1;
  [[nodiscard]] bool has_peer()
      const;
  void clear_peer() ;
  [[nodiscard]] const ::apipb::Peer& peer() const;
  [[nodiscard]] ::apipb::Peer* PROTOBUF_NULLABLE release_peer();
  ::apipb::Peer* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  ::apipb::Peer* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::Peer& _internal_peer() const;
  ::apipb::Peer* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPeerResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPeerResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Peer* PROTOBUF_NULLABLE peer_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListPeerGroupResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.ListPeerGroupResponse) */ {
 public:
  inline ListPeerGroupResponse() : ListPeerGroupResponse(nullptr) {}
  ~ListPeerGroupResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListPeerGroupResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListPeerGroupResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListPeerGroupResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListPeerGroupResponse(const ListPeerGroupResponse& from) : ListPeerGroupResponse(nullptr, from) {}
  inline ListPeerGroupResponse(ListPeerGroupResponse&& from) noexcept : ListPeerGroupResponse(nullptr, ::std::move(from)) {}
  inline ListPeerGroupResponse& operator=(const ListPeerGroupResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListPeerGroupResponse& operator=(ListPeerGroupResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListPeerGroupResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListPeerGroupResponse>(&ListPeerGroupResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 26;
  friend void swap(ListPeerGroupResponse& a, ListPeerGroupResponse& b) { a.Swap(&b); }
  inline void Swap(ListPeerGroupResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListPeerGroupResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListPeerGroupResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListPeerGroupResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListPeerGroupResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListPeerGroupResponse& from) { ListPeerGroupResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListPeerGroupResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.ListPeerGroupResponse"; }

  explicit ListPeerGroupResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListPeerGroupResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListPeerGroupResponse& from);
  ListPeerGroupResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListPeerGroupResponse&& from) noexcept
      : ListPeerGroupResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerGroupFieldNumber = 1,
  };
  // .apipb.PeerGroup peer_group = 1;
  [[nodiscard]] bool has_peer_group()
      const;
  void clear_peer_group() ;
  [[nodiscard]] const ::apipb::PeerGroup& peer_group() const;
  [[nodiscard]] ::apipb::PeerGroup* PROTOBUF_NULLABLE release_peer_group();
  ::apipb::PeerGroup* PROTOBUF_NONNULL mutable_peer_group();
  void set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  ::apipb::PeerGroup* PROTOBUF_NULLABLE unsafe_arena_release_peer_group();

  private:
  const ::apipb::PeerGroup& _internal_peer_group() const;
  ::apipb::PeerGroup* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // @@protoc_insertion_point(class_scope:apipb.ListPeerGroupResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListPeerGroupResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PeerGroup* PROTOBUF_NULLABLE peer_group_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPeerRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPeerRequest) */ {
 public:
  inline AddPeerRequest() : AddPeerRequest(nullptr) {}
  ~AddPeerRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPeerRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPeerRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPeerRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPeerRequest(const AddPeerRequest& from) : AddPeerRequest(nullptr, from) {}
  inline AddPeerRequest(AddPeerRequest&& from) noexcept : AddPeerRequest(nullptr, ::std::move(from)) {}
  inline AddPeerRequest& operator=(const AddPeerRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPeerRequest& operator=(AddPeerRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPeerRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPeerRequest>(&AddPeerRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(AddPeerRequest& a, AddPeerRequest& b) { a.Swap(&b); }
  inline void Swap(AddPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPeerRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPeerRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPeerRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPeerRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPeerRequest& from) { AddPeerRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPeerRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPeerRequest"; }

  explicit AddPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPeerRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPeerRequest& from);
  AddPeerRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPeerRequest&& from) noexcept
      : AddPeerRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 1,
  };
  // .apipb.Peer peer = 1;
  [[nodiscard]] bool has_peer()
      const;
  void clear_peer() ;
  [[nodiscard]] const ::apipb::Peer& peer() const;
  [[nodiscard]] ::apipb::Peer* PROTOBUF_NULLABLE release_peer();
  ::apipb::Peer* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value);
  ::apipb::Peer* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::Peer& _internal_peer() const;
  ::apipb::Peer* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPeerRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPeerRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::Peer* PROTOBUF_NULLABLE peer_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AddPeerGroupRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.AddPeerGroupRequest) */ {
 public:
  inline AddPeerGroupRequest() : AddPeerGroupRequest(nullptr) {}
  ~AddPeerGroupRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AddPeerGroupRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AddPeerGroupRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AddPeerGroupRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AddPeerGroupRequest(const AddPeerGroupRequest& from) : AddPeerGroupRequest(nullptr, from) {}
  inline AddPeerGroupRequest(AddPeerGroupRequest&& from) noexcept : AddPeerGroupRequest(nullptr, ::std::move(from)) {}
  inline AddPeerGroupRequest& operator=(const AddPeerGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AddPeerGroupRequest& operator=(AddPeerGroupRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AddPeerGroupRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AddPeerGroupRequest>(&AddPeerGroupRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 21;
  friend void swap(AddPeerGroupRequest& a, AddPeerGroupRequest& b) { a.Swap(&b); }
  inline void Swap(AddPeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AddPeerGroupRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AddPeerGroupRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AddPeerGroupRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AddPeerGroupRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AddPeerGroupRequest& from) { AddPeerGroupRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AddPeerGroupRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.AddPeerGroupRequest"; }

  explicit AddPeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AddPeerGroupRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AddPeerGroupRequest& from);
  AddPeerGroupRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AddPeerGroupRequest&& from) noexcept
      : AddPeerGroupRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPeerGroupFieldNumber = 1,
  };
  // .apipb.PeerGroup peer_group = 1;
  [[nodiscard]] bool has_peer_group()
      const;
  void clear_peer_group() ;
  [[nodiscard]] const ::apipb::PeerGroup& peer_group() const;
  [[nodiscard]] ::apipb::PeerGroup* PROTOBUF_NULLABLE release_peer_group();
  ::apipb::PeerGroup* PROTOBUF_NONNULL mutable_peer_group();
  void set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value);
  ::apipb::PeerGroup* PROTOBUF_NULLABLE unsafe_arena_release_peer_group();

  private:
  const ::apipb::PeerGroup& _internal_peer_group() const;
  ::apipb::PeerGroup* PROTOBUF_NONNULL _internal_mutable_peer_group();

  public:
  // @@protoc_insertion_point(class_scope:apipb.AddPeerGroupRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AddPeerGroupRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::apipb::PeerGroup* PROTOBUF_NULLABLE peer_group_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED WatchEventResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:apipb.WatchEventResponse) */ {
 public:
  inline WatchEventResponse() : WatchEventResponse(nullptr) {}
  ~WatchEventResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WatchEventResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WatchEventResponse));
  }
#endif

  template <typename = void>
  explicit constexpr WatchEventResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WatchEventResponse(const WatchEventResponse& from) : WatchEventResponse(nullptr, from) {}
  inline WatchEventResponse(WatchEventResponse&& from) noexcept : WatchEventResponse(nullptr, ::std::move(from)) {}
  inline WatchEventResponse& operator=(const WatchEventResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline WatchEventResponse& operator=(WatchEventResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const WatchEventResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WatchEventResponse>(&WatchEventResponse_globals_);
  }
  enum EventCase {
    kPeer = 2,
    kTable = 3,
    EVENT_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(WatchEventResponse& a, WatchEventResponse& b) { a.Swap(&b); }
  inline void Swap(WatchEventResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WatchEventResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] WatchEventResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<WatchEventResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const WatchEventResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const WatchEventResponse& from) { WatchEventResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WatchEventResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "apipb.WatchEventResponse"; }

  explicit WatchEventResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WatchEventResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WatchEventResponse& from);
  WatchEventResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WatchEventResponse&& from) noexcept
      : WatchEventResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using PeerEvent = WatchEventResponse_PeerEvent;
  using TableEvent = WatchEventResponse_TableEvent;

  // accessors -------------------------------------------------------
  enum : int {
    kPeerFieldNumber = 2,
    kTableFieldNumber = 3,
  };
  // .apipb.WatchEventResponse.PeerEvent peer = 2;
  [[nodiscard]] bool has_peer()
      const;
  private:
  bool _internal_has_peer() const;

  public:
  void clear_peer() ;
  [[nodiscard]] const ::apipb::WatchEventResponse_PeerEvent& peer() const;
  [[nodiscard]] ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE release_peer();
  ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NONNULL mutable_peer();
  void set_allocated_peer(::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_peer(::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE value);
  ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE unsafe_arena_release_peer();

  private:
  const ::apipb::WatchEventResponse_PeerEvent& _internal_peer() const;
  ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NONNULL _internal_mutable_peer();

  public:
  // .apipb.WatchEventResponse.TableEvent table = 3;
  [[nodiscard]] bool has_table()
      const;
  private:
  bool _internal_has_table() const;

  public:
  void clear_table() ;
  [[nodiscard]] const ::apipb::WatchEventResponse_TableEvent& table() const;
  [[nodiscard]] ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE release_table();
  ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NONNULL mutable_table();
  void set_allocated_table(::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_table(::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE value);
  ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE unsafe_arena_release_table();

  private:
  const ::apipb::WatchEventResponse_TableEvent& _internal_table() const;
  ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NONNULL _internal_mutable_table();

  public:
  void clear_event();
  EventCase event_case() const;
  // @@protoc_insertion_point(class_scope:apipb.WatchEventResponse)
 private:
  class _Internal;
  void set_has_peer();
  void set_has_table();
  [[nodiscard]] inline bool has_event() const;
  inline void clear_has_event();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WatchEventResponse& from_msg);
    union EventUnion {
      constexpr EventUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE peer_;
      ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE table_;
    } event_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_gobgp_2eproto;
};

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




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


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

// StartBgpRequest

// .apipb.Global global = 1;
inline bool StartBgpRequest::has_global() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.global_ != nullptr);
  return value;
}
inline void StartBgpRequest::clear_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.global_ != nullptr) _impl_.global_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Global& StartBgpRequest::_internal_global() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Global* p = _impl_.global_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Global>(&::apipb::Global_globals_);
}
inline const ::apipb::Global& StartBgpRequest::global() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.StartBgpRequest.global)
  return _internal_global();
}
inline void StartBgpRequest::unsafe_arena_set_allocated_global(
    ::apipb::Global* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.global_);
  }
  _impl_.global_ = reinterpret_cast<::apipb::Global*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.StartBgpRequest.global)
}
inline ::apipb::Global* PROTOBUF_NULLABLE StartBgpRequest::release_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* released = _impl_.global_;
  _impl_.global_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Global* PROTOBUF_NULLABLE StartBgpRequest::unsafe_arena_release_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.StartBgpRequest.global)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* temp = _impl_.global_;
  _impl_.global_ = nullptr;
  return temp;
}
inline ::apipb::Global* PROTOBUF_NONNULL StartBgpRequest::_internal_mutable_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.global_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Global>(GetArena());
    _impl_.global_ = reinterpret_cast<::apipb::Global*>(p);
  }
  return _impl_.global_;
}
inline ::apipb::Global* PROTOBUF_NONNULL StartBgpRequest::mutable_global()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* _msg = _internal_mutable_global();
  // @@protoc_insertion_point(field_mutable:apipb.StartBgpRequest.global)
  return _msg;
}
inline void StartBgpRequest::set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.global_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.global_ = reinterpret_cast<::apipb::Global*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.StartBgpRequest.global)
}

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

// StopBgpRequest

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

// GetBgpRequest

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

// GetBgpResponse

// .apipb.Global global = 1;
inline bool GetBgpResponse::has_global() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.global_ != nullptr);
  return value;
}
inline void GetBgpResponse::clear_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.global_ != nullptr) _impl_.global_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Global& GetBgpResponse::_internal_global() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Global* p = _impl_.global_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Global>(&::apipb::Global_globals_);
}
inline const ::apipb::Global& GetBgpResponse::global() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.GetBgpResponse.global)
  return _internal_global();
}
inline void GetBgpResponse::unsafe_arena_set_allocated_global(
    ::apipb::Global* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.global_);
  }
  _impl_.global_ = reinterpret_cast<::apipb::Global*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.GetBgpResponse.global)
}
inline ::apipb::Global* PROTOBUF_NULLABLE GetBgpResponse::release_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* released = _impl_.global_;
  _impl_.global_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Global* PROTOBUF_NULLABLE GetBgpResponse::unsafe_arena_release_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.GetBgpResponse.global)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* temp = _impl_.global_;
  _impl_.global_ = nullptr;
  return temp;
}
inline ::apipb::Global* PROTOBUF_NONNULL GetBgpResponse::_internal_mutable_global() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.global_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Global>(GetArena());
    _impl_.global_ = reinterpret_cast<::apipb::Global*>(p);
  }
  return _impl_.global_;
}
inline ::apipb::Global* PROTOBUF_NONNULL GetBgpResponse::mutable_global()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Global* _msg = _internal_mutable_global();
  // @@protoc_insertion_point(field_mutable:apipb.GetBgpResponse.global)
  return _msg;
}
inline void GetBgpResponse::set_allocated_global(::apipb::Global* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.global_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.global_ = reinterpret_cast<::apipb::Global*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.GetBgpResponse.global)
}

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

// WatchEventRequest_Peer

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

// WatchEventRequest_Table_Filter

// .apipb.WatchEventRequest.Table.Filter.Type type = 1;
inline void WatchEventRequest_Table_Filter::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::apipb::WatchEventRequest_Table_Filter_Type WatchEventRequest_Table_Filter::type() const {
  // @@protoc_insertion_point(field_get:apipb.WatchEventRequest.Table.Filter.type)
  return _internal_type();
}
inline void WatchEventRequest_Table_Filter::set_type(::apipb::WatchEventRequest_Table_Filter_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.WatchEventRequest.Table.Filter.type)
}
inline ::apipb::WatchEventRequest_Table_Filter_Type WatchEventRequest_Table_Filter::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::WatchEventRequest_Table_Filter_Type>(_impl_.type_);
}
inline void WatchEventRequest_Table_Filter::_internal_set_type(::apipb::WatchEventRequest_Table_Filter_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// bool init = 2;
inline void WatchEventRequest_Table_Filter::clear_init() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.init_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool WatchEventRequest_Table_Filter::init() const {
  // @@protoc_insertion_point(field_get:apipb.WatchEventRequest.Table.Filter.init)
  return _internal_init();
}
inline void WatchEventRequest_Table_Filter::set_init(bool value) {
  _internal_set_init(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.WatchEventRequest.Table.Filter.init)
}
inline bool WatchEventRequest_Table_Filter::_internal_init() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.init_;
}
inline void WatchEventRequest_Table_Filter::_internal_set_init(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.init_ = value;
}

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

// WatchEventRequest_Table

// repeated .apipb.WatchEventRequest.Table.Filter filters = 1;
inline int WatchEventRequest_Table::_internal_filters_size() const {
  return _internal_filters().size();
}
inline int WatchEventRequest_Table::filters_size() const {
  return _internal_filters_size();
}
inline void WatchEventRequest_Table::clear_filters() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filters_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::WatchEventRequest_Table_Filter& WatchEventRequest_Table::filters(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventRequest.Table.filters)
  return _internal_filters().Get(index);
}
inline ::apipb::WatchEventRequest_Table_Filter* PROTOBUF_NONNULL WatchEventRequest_Table::mutable_filters(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventRequest.Table.filters)
  return _internal_mutable_filters()->Mutable(index);
}
inline ::apipb::WatchEventRequest_Table_Filter* PROTOBUF_NONNULL WatchEventRequest_Table::add_filters()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::WatchEventRequest_Table_Filter* _add =
      _internal_mutable_filters()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.WatchEventRequest.Table.filters)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>& WatchEventRequest_Table::filters() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.WatchEventRequest.Table.filters)
  return _internal_filters();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>* PROTOBUF_NONNULL
WatchEventRequest_Table::mutable_filters() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.WatchEventRequest.Table.filters)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_filters();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>&
WatchEventRequest_Table::_internal_filters() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filters_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::WatchEventRequest_Table_Filter>* PROTOBUF_NONNULL
WatchEventRequest_Table::_internal_mutable_filters() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.filters_;
}

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

// WatchEventRequest

// .apipb.WatchEventRequest.Peer peer = 1;
inline bool WatchEventRequest::has_peer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_ != nullptr);
  return value;
}
inline void WatchEventRequest::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ != nullptr) _impl_.peer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::WatchEventRequest_Peer& WatchEventRequest::_internal_peer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::WatchEventRequest_Peer* p = _impl_.peer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::WatchEventRequest_Peer>(&::apipb::WatchEventRequest_Peer_globals_);
}
inline const ::apipb::WatchEventRequest_Peer& WatchEventRequest::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventRequest.peer)
  return _internal_peer();
}
inline void WatchEventRequest::unsafe_arena_set_allocated_peer(
    ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }
  _impl_.peer_ = reinterpret_cast<::apipb::WatchEventRequest_Peer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.WatchEventRequest.peer)
}
inline ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE WatchEventRequest::release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::WatchEventRequest_Peer* released = _impl_.peer_;
  _impl_.peer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE WatchEventRequest::unsafe_arena_release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.WatchEventRequest.peer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::WatchEventRequest_Peer* temp = _impl_.peer_;
  _impl_.peer_ = nullptr;
  return temp;
}
inline ::apipb::WatchEventRequest_Peer* PROTOBUF_NONNULL WatchEventRequest::_internal_mutable_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::WatchEventRequest_Peer>(GetArena());
    _impl_.peer_ = reinterpret_cast<::apipb::WatchEventRequest_Peer*>(p);
  }
  return _impl_.peer_;
}
inline ::apipb::WatchEventRequest_Peer* PROTOBUF_NONNULL WatchEventRequest::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::WatchEventRequest_Peer* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventRequest.peer)
  return _msg;
}
inline void WatchEventRequest::set_allocated_peer(::apipb::WatchEventRequest_Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_ = reinterpret_cast<::apipb::WatchEventRequest_Peer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.WatchEventRequest.peer)
}

// .apipb.WatchEventRequest.Table table = 2;
inline bool WatchEventRequest::has_table() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.table_ != nullptr);
  return value;
}
inline void WatchEventRequest::clear_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.table_ != nullptr) _impl_.table_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::WatchEventRequest_Table& WatchEventRequest::_internal_table() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::WatchEventRequest_Table* p = _impl_.table_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::WatchEventRequest_Table>(&::apipb::WatchEventRequest_Table_globals_);
}
inline const ::apipb::WatchEventRequest_Table& WatchEventRequest::table() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventRequest.table)
  return _internal_table();
}
inline void WatchEventRequest::unsafe_arena_set_allocated_table(
    ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.table_);
  }
  _impl_.table_ = reinterpret_cast<::apipb::WatchEventRequest_Table*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.WatchEventRequest.table)
}
inline ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE WatchEventRequest::release_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::WatchEventRequest_Table* released = _impl_.table_;
  _impl_.table_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE WatchEventRequest::unsafe_arena_release_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.WatchEventRequest.table)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::WatchEventRequest_Table* temp = _impl_.table_;
  _impl_.table_ = nullptr;
  return temp;
}
inline ::apipb::WatchEventRequest_Table* PROTOBUF_NONNULL WatchEventRequest::_internal_mutable_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.table_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::WatchEventRequest_Table>(GetArena());
    _impl_.table_ = reinterpret_cast<::apipb::WatchEventRequest_Table*>(p);
  }
  return _impl_.table_;
}
inline ::apipb::WatchEventRequest_Table* PROTOBUF_NONNULL WatchEventRequest::mutable_table()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::WatchEventRequest_Table* _msg = _internal_mutable_table();
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventRequest.table)
  return _msg;
}
inline void WatchEventRequest::set_allocated_table(::apipb::WatchEventRequest_Table* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.table_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.table_ = reinterpret_cast<::apipb::WatchEventRequest_Table*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.WatchEventRequest.table)
}

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

// WatchEventResponse_PeerEvent

// .apipb.WatchEventResponse.PeerEvent.Type type = 1;
inline void WatchEventResponse_PeerEvent::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::WatchEventResponse_PeerEvent_Type WatchEventResponse_PeerEvent::type() const {
  // @@protoc_insertion_point(field_get:apipb.WatchEventResponse.PeerEvent.type)
  return _internal_type();
}
inline void WatchEventResponse_PeerEvent::set_type(::apipb::WatchEventResponse_PeerEvent_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.WatchEventResponse.PeerEvent.type)
}
inline ::apipb::WatchEventResponse_PeerEvent_Type WatchEventResponse_PeerEvent::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::WatchEventResponse_PeerEvent_Type>(_impl_.type_);
}
inline void WatchEventResponse_PeerEvent::_internal_set_type(::apipb::WatchEventResponse_PeerEvent_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// .apipb.Peer peer = 2;
inline bool WatchEventResponse_PeerEvent::has_peer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_ != nullptr);
  return value;
}
inline void WatchEventResponse_PeerEvent::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ != nullptr) _impl_.peer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Peer& WatchEventResponse_PeerEvent::_internal_peer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Peer* p = _impl_.peer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Peer>(&::apipb::Peer_globals_);
}
inline const ::apipb::Peer& WatchEventResponse_PeerEvent::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventResponse.PeerEvent.peer)
  return _internal_peer();
}
inline void WatchEventResponse_PeerEvent::unsafe_arena_set_allocated_peer(
    ::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }
  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.WatchEventResponse.PeerEvent.peer)
}
inline ::apipb::Peer* PROTOBUF_NULLABLE WatchEventResponse_PeerEvent::release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* released = _impl_.peer_;
  _impl_.peer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Peer* PROTOBUF_NULLABLE WatchEventResponse_PeerEvent::unsafe_arena_release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.WatchEventResponse.PeerEvent.peer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* temp = _impl_.peer_;
  _impl_.peer_ = nullptr;
  return temp;
}
inline ::apipb::Peer* PROTOBUF_NONNULL WatchEventResponse_PeerEvent::_internal_mutable_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Peer>(GetArena());
    _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(p);
  }
  return _impl_.peer_;
}
inline ::apipb::Peer* PROTOBUF_NONNULL WatchEventResponse_PeerEvent::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventResponse.PeerEvent.peer)
  return _msg;
}
inline void WatchEventResponse_PeerEvent::set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.WatchEventResponse.PeerEvent.peer)
}

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

// WatchEventResponse_TableEvent

// repeated .apipb.Path paths = 2;
inline int WatchEventResponse_TableEvent::_internal_paths_size() const {
  return _internal_paths().size();
}
inline int WatchEventResponse_TableEvent::paths_size() const {
  return _internal_paths_size();
}
inline void WatchEventResponse_TableEvent::clear_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.paths_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Path& WatchEventResponse_TableEvent::paths(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventResponse.TableEvent.paths)
  return _internal_paths().Get(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL WatchEventResponse_TableEvent::mutable_paths(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventResponse.TableEvent.paths)
  return _internal_mutable_paths()->Mutable(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL WatchEventResponse_TableEvent::add_paths()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Path* _add =
      _internal_mutable_paths()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.WatchEventResponse.TableEvent.paths)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>& WatchEventResponse_TableEvent::paths() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.WatchEventResponse.TableEvent.paths)
  return _internal_paths();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
WatchEventResponse_TableEvent::mutable_paths() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.WatchEventResponse.TableEvent.paths)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_paths();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
WatchEventResponse_TableEvent::_internal_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.paths_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
WatchEventResponse_TableEvent::_internal_mutable_paths() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.paths_;
}

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

// WatchEventResponse

// .apipb.WatchEventResponse.PeerEvent peer = 2;
inline bool WatchEventResponse::has_peer() const {
  return event_case() == kPeer;
}
inline bool WatchEventResponse::_internal_has_peer() const {
  return event_case() == kPeer;
}
inline void WatchEventResponse::set_has_peer() {
  _impl_._oneof_case_[0] = kPeer;
}
inline void WatchEventResponse::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (event_case() == kPeer) {
    if (GetArena() == nullptr) {
      delete _impl_.event_.peer_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.event_.peer_);
    }
    clear_has_event();
  }
}
inline ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE WatchEventResponse::release_peer() {
  // @@protoc_insertion_point(field_release:apipb.WatchEventResponse.peer)
  if (event_case() == kPeer) {
    clear_has_event();
    auto* temp = _impl_.event_.peer_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.event_.peer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::apipb::WatchEventResponse_PeerEvent& WatchEventResponse::_internal_peer() const {
  return event_case() == kPeer ? static_cast<const ::apipb::WatchEventResponse_PeerEvent&>(*_impl_.event_.peer_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::WatchEventResponse_PeerEvent>(&::apipb::WatchEventResponse_PeerEvent_globals_);
}
inline const ::apipb::WatchEventResponse_PeerEvent& WatchEventResponse::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventResponse.peer)
  return _internal_peer();
}
inline ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE WatchEventResponse::unsafe_arena_release_peer() {
  // @@protoc_insertion_point(field_unsafe_arena_release:apipb.WatchEventResponse.peer)
  if (event_case() == kPeer) {
    clear_has_event();
    auto* temp = _impl_.event_.peer_;
    _impl_.event_.peer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void WatchEventResponse::unsafe_arena_set_allocated_peer(
    ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_event();
  if (value) {
    set_has_peer();
    _impl_.event_.peer_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.WatchEventResponse.peer)
}
inline ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NONNULL WatchEventResponse::_internal_mutable_peer() {
  if (event_case() != kPeer) {
    clear_event();
    set_has_peer();
    _impl_.event_.peer_ = 
        ::google::protobuf::Message::DefaultConstruct<::apipb::WatchEventResponse_PeerEvent>(GetArena());
  }
  return _impl_.event_.peer_;
}
inline ::apipb::WatchEventResponse_PeerEvent* PROTOBUF_NONNULL WatchEventResponse::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::apipb::WatchEventResponse_PeerEvent* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventResponse.peer)
  return _msg;
}

// .apipb.WatchEventResponse.TableEvent table = 3;
inline bool WatchEventResponse::has_table() const {
  return event_case() == kTable;
}
inline bool WatchEventResponse::_internal_has_table() const {
  return event_case() == kTable;
}
inline void WatchEventResponse::set_has_table() {
  _impl_._oneof_case_[0] = kTable;
}
inline void WatchEventResponse::clear_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (event_case() == kTable) {
    if (GetArena() == nullptr) {
      delete _impl_.event_.table_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.event_.table_);
    }
    clear_has_event();
  }
}
inline ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE WatchEventResponse::release_table() {
  // @@protoc_insertion_point(field_release:apipb.WatchEventResponse.table)
  if (event_case() == kTable) {
    clear_has_event();
    auto* temp = _impl_.event_.table_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.event_.table_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::apipb::WatchEventResponse_TableEvent& WatchEventResponse::_internal_table() const {
  return event_case() == kTable ? static_cast<const ::apipb::WatchEventResponse_TableEvent&>(*_impl_.event_.table_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::WatchEventResponse_TableEvent>(&::apipb::WatchEventResponse_TableEvent_globals_);
}
inline const ::apipb::WatchEventResponse_TableEvent& WatchEventResponse::table() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.WatchEventResponse.table)
  return _internal_table();
}
inline ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE WatchEventResponse::unsafe_arena_release_table() {
  // @@protoc_insertion_point(field_unsafe_arena_release:apipb.WatchEventResponse.table)
  if (event_case() == kTable) {
    clear_has_event();
    auto* temp = _impl_.event_.table_;
    _impl_.event_.table_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void WatchEventResponse::unsafe_arena_set_allocated_table(
    ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_event();
  if (value) {
    set_has_table();
    _impl_.event_.table_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.WatchEventResponse.table)
}
inline ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NONNULL WatchEventResponse::_internal_mutable_table() {
  if (event_case() != kTable) {
    clear_event();
    set_has_table();
    _impl_.event_.table_ = 
        ::google::protobuf::Message::DefaultConstruct<::apipb::WatchEventResponse_TableEvent>(GetArena());
  }
  return _impl_.event_.table_;
}
inline ::apipb::WatchEventResponse_TableEvent* PROTOBUF_NONNULL WatchEventResponse::mutable_table()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::apipb::WatchEventResponse_TableEvent* _msg = _internal_mutable_table();
  // @@protoc_insertion_point(field_mutable:apipb.WatchEventResponse.table)
  return _msg;
}

inline bool WatchEventResponse::has_event() const {
  return event_case() != EVENT_NOT_SET;
}
inline void WatchEventResponse::clear_has_event() {
  _impl_._oneof_case_[0] = EVENT_NOT_SET;
}
inline WatchEventResponse::EventCase WatchEventResponse::event_case() const {
  return WatchEventResponse::EventCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// AddPeerRequest

// .apipb.Peer peer = 1;
inline bool AddPeerRequest::has_peer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_ != nullptr);
  return value;
}
inline void AddPeerRequest::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ != nullptr) _impl_.peer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Peer& AddPeerRequest::_internal_peer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Peer* p = _impl_.peer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Peer>(&::apipb::Peer_globals_);
}
inline const ::apipb::Peer& AddPeerRequest::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPeerRequest.peer)
  return _internal_peer();
}
inline void AddPeerRequest::unsafe_arena_set_allocated_peer(
    ::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }
  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPeerRequest.peer)
}
inline ::apipb::Peer* PROTOBUF_NULLABLE AddPeerRequest::release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* released = _impl_.peer_;
  _impl_.peer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Peer* PROTOBUF_NULLABLE AddPeerRequest::unsafe_arena_release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPeerRequest.peer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* temp = _impl_.peer_;
  _impl_.peer_ = nullptr;
  return temp;
}
inline ::apipb::Peer* PROTOBUF_NONNULL AddPeerRequest::_internal_mutable_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Peer>(GetArena());
    _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(p);
  }
  return _impl_.peer_;
}
inline ::apipb::Peer* PROTOBUF_NONNULL AddPeerRequest::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.AddPeerRequest.peer)
  return _msg;
}
inline void AddPeerRequest::set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPeerRequest.peer)
}

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

// DeletePeerRequest

// string address = 1;
inline void DeletePeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeletePeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeletePeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeletePeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePeerRequest.address)
  return _s;
}
inline const ::std::string& DeletePeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void DeletePeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeletePeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void DeletePeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePeerRequest.address)
}

// string interface = 2;
inline void DeletePeerRequest::clear_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.interface_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DeletePeerRequest::interface() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePeerRequest.interface)
  return _internal_interface();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeletePeerRequest::set_interface(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.interface_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeletePeerRequest.interface)
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerRequest::mutable_interface()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_interface();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePeerRequest.interface)
  return _s;
}
inline const ::std::string& DeletePeerRequest::_internal_interface() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.interface_.Get();
}
inline void DeletePeerRequest::_internal_set_interface(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.interface_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerRequest::_internal_mutable_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.interface_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeletePeerRequest::release_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePeerRequest.interface)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.interface_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.interface_.Set("", GetArena());
  }
  return released;
}
inline void DeletePeerRequest::set_allocated_interface(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.interface_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.interface_.IsDefault()) {
    _impl_.interface_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePeerRequest.interface)
}

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

// ListPeerRequest

// string address = 1;
inline void ListPeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListPeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListPeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListPeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL ListPeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.ListPeerRequest.address)
  return _s;
}
inline const ::std::string& ListPeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void ListPeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListPeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListPeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void ListPeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPeerRequest.address)
}

// bool enableAdvertised = 2;
inline void ListPeerRequest::clear_enableadvertised() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enableadvertised_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool ListPeerRequest::enableadvertised() const {
  // @@protoc_insertion_point(field_get:apipb.ListPeerRequest.enableAdvertised)
  return _internal_enableadvertised();
}
inline void ListPeerRequest::set_enableadvertised(bool value) {
  _internal_set_enableadvertised(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.ListPeerRequest.enableAdvertised)
}
inline bool ListPeerRequest::_internal_enableadvertised() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enableadvertised_;
}
inline void ListPeerRequest::_internal_set_enableadvertised(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enableadvertised_ = value;
}

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

// ListPeerResponse

// .apipb.Peer peer = 1;
inline bool ListPeerResponse::has_peer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_ != nullptr);
  return value;
}
inline void ListPeerResponse::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ != nullptr) _impl_.peer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Peer& ListPeerResponse::_internal_peer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Peer* p = _impl_.peer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Peer>(&::apipb::Peer_globals_);
}
inline const ::apipb::Peer& ListPeerResponse::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPeerResponse.peer)
  return _internal_peer();
}
inline void ListPeerResponse::unsafe_arena_set_allocated_peer(
    ::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }
  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPeerResponse.peer)
}
inline ::apipb::Peer* PROTOBUF_NULLABLE ListPeerResponse::release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* released = _impl_.peer_;
  _impl_.peer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Peer* PROTOBUF_NULLABLE ListPeerResponse::unsafe_arena_release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPeerResponse.peer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* temp = _impl_.peer_;
  _impl_.peer_ = nullptr;
  return temp;
}
inline ::apipb::Peer* PROTOBUF_NONNULL ListPeerResponse::_internal_mutable_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Peer>(GetArena());
    _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(p);
  }
  return _impl_.peer_;
}
inline ::apipb::Peer* PROTOBUF_NONNULL ListPeerResponse::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.ListPeerResponse.peer)
  return _msg;
}
inline void ListPeerResponse::set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPeerResponse.peer)
}

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

// UpdatePeerRequest

// .apipb.Peer peer = 1;
inline bool UpdatePeerRequest::has_peer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_ != nullptr);
  return value;
}
inline void UpdatePeerRequest::clear_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ != nullptr) _impl_.peer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Peer& UpdatePeerRequest::_internal_peer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Peer* p = _impl_.peer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Peer>(&::apipb::Peer_globals_);
}
inline const ::apipb::Peer& UpdatePeerRequest::peer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerRequest.peer)
  return _internal_peer();
}
inline void UpdatePeerRequest::unsafe_arena_set_allocated_peer(
    ::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }
  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UpdatePeerRequest.peer)
}
inline ::apipb::Peer* PROTOBUF_NULLABLE UpdatePeerRequest::release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* released = _impl_.peer_;
  _impl_.peer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Peer* PROTOBUF_NULLABLE UpdatePeerRequest::unsafe_arena_release_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UpdatePeerRequest.peer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* temp = _impl_.peer_;
  _impl_.peer_ = nullptr;
  return temp;
}
inline ::apipb::Peer* PROTOBUF_NONNULL UpdatePeerRequest::_internal_mutable_peer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Peer>(GetArena());
    _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(p);
  }
  return _impl_.peer_;
}
inline ::apipb::Peer* PROTOBUF_NONNULL UpdatePeerRequest::mutable_peer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Peer* _msg = _internal_mutable_peer();
  // @@protoc_insertion_point(field_mutable:apipb.UpdatePeerRequest.peer)
  return _msg;
}
inline void UpdatePeerRequest::set_allocated_peer(::apipb::Peer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_ = reinterpret_cast<::apipb::Peer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UpdatePeerRequest.peer)
}

// bool do_soft_reset_in = 2;
inline void UpdatePeerRequest::clear_do_soft_reset_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.do_soft_reset_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool UpdatePeerRequest::do_soft_reset_in() const {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerRequest.do_soft_reset_in)
  return _internal_do_soft_reset_in();
}
inline void UpdatePeerRequest::set_do_soft_reset_in(bool value) {
  _internal_set_do_soft_reset_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.UpdatePeerRequest.do_soft_reset_in)
}
inline bool UpdatePeerRequest::_internal_do_soft_reset_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.do_soft_reset_in_;
}
inline void UpdatePeerRequest::_internal_set_do_soft_reset_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.do_soft_reset_in_ = value;
}

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

// UpdatePeerResponse

// bool needs_soft_reset_in = 1;
inline void UpdatePeerResponse::clear_needs_soft_reset_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.needs_soft_reset_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool UpdatePeerResponse::needs_soft_reset_in() const {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerResponse.needs_soft_reset_in)
  return _internal_needs_soft_reset_in();
}
inline void UpdatePeerResponse::set_needs_soft_reset_in(bool value) {
  _internal_set_needs_soft_reset_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.UpdatePeerResponse.needs_soft_reset_in)
}
inline bool UpdatePeerResponse::_internal_needs_soft_reset_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.needs_soft_reset_in_;
}
inline void UpdatePeerResponse::_internal_set_needs_soft_reset_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.needs_soft_reset_in_ = value;
}

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

// ResetPeerRequest

// string address = 1;
inline void ResetPeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ResetPeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ResetPeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ResetPeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ResetPeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL ResetPeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.ResetPeerRequest.address)
  return _s;
}
inline const ::std::string& ResetPeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void ResetPeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ResetPeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ResetPeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ResetPeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void ResetPeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ResetPeerRequest.address)
}

// string communication = 2;
inline void ResetPeerRequest::clear_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ResetPeerRequest::communication() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ResetPeerRequest.communication)
  return _internal_communication();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ResetPeerRequest::set_communication(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.communication_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ResetPeerRequest.communication)
}
inline ::std::string* PROTOBUF_NONNULL ResetPeerRequest::mutable_communication()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_communication();
  // @@protoc_insertion_point(field_mutable:apipb.ResetPeerRequest.communication)
  return _s;
}
inline const ::std::string& ResetPeerRequest::_internal_communication() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.communication_.Get();
}
inline void ResetPeerRequest::_internal_set_communication(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ResetPeerRequest::_internal_mutable_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.communication_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ResetPeerRequest::release_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ResetPeerRequest.communication)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.communication_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.communication_.Set("", GetArena());
  }
  return released;
}
inline void ResetPeerRequest::set_allocated_communication(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.communication_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.communication_.IsDefault()) {
    _impl_.communication_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ResetPeerRequest.communication)
}

// bool soft = 3;
inline void ResetPeerRequest::clear_soft() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.soft_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool ResetPeerRequest::soft() const {
  // @@protoc_insertion_point(field_get:apipb.ResetPeerRequest.soft)
  return _internal_soft();
}
inline void ResetPeerRequest::set_soft(bool value) {
  _internal_set_soft(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.ResetPeerRequest.soft)
}
inline bool ResetPeerRequest::_internal_soft() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.soft_;
}
inline void ResetPeerRequest::_internal_set_soft(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.soft_ = value;
}

// .apipb.ResetPeerRequest.SoftResetDirection direction = 4;
inline void ResetPeerRequest::clear_direction() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::ResetPeerRequest_SoftResetDirection ResetPeerRequest::direction() const {
  // @@protoc_insertion_point(field_get:apipb.ResetPeerRequest.direction)
  return _internal_direction();
}
inline void ResetPeerRequest::set_direction(::apipb::ResetPeerRequest_SoftResetDirection value) {
  _internal_set_direction(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.ResetPeerRequest.direction)
}
inline ::apipb::ResetPeerRequest_SoftResetDirection ResetPeerRequest::_internal_direction() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::ResetPeerRequest_SoftResetDirection>(_impl_.direction_);
}
inline void ResetPeerRequest::_internal_set_direction(::apipb::ResetPeerRequest_SoftResetDirection value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = value;
}

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

// ShutdownPeerRequest

// string address = 1;
inline void ShutdownPeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ShutdownPeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ShutdownPeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShutdownPeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ShutdownPeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL ShutdownPeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.ShutdownPeerRequest.address)
  return _s;
}
inline const ::std::string& ShutdownPeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void ShutdownPeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShutdownPeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShutdownPeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ShutdownPeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void ShutdownPeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ShutdownPeerRequest.address)
}

// string communication = 2;
inline void ShutdownPeerRequest::clear_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ShutdownPeerRequest::communication() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ShutdownPeerRequest.communication)
  return _internal_communication();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShutdownPeerRequest::set_communication(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.communication_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ShutdownPeerRequest.communication)
}
inline ::std::string* PROTOBUF_NONNULL ShutdownPeerRequest::mutable_communication()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_communication();
  // @@protoc_insertion_point(field_mutable:apipb.ShutdownPeerRequest.communication)
  return _s;
}
inline const ::std::string& ShutdownPeerRequest::_internal_communication() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.communication_.Get();
}
inline void ShutdownPeerRequest::_internal_set_communication(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShutdownPeerRequest::_internal_mutable_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.communication_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShutdownPeerRequest::release_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ShutdownPeerRequest.communication)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.communication_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.communication_.Set("", GetArena());
  }
  return released;
}
inline void ShutdownPeerRequest::set_allocated_communication(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.communication_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.communication_.IsDefault()) {
    _impl_.communication_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ShutdownPeerRequest.communication)
}

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

// EnablePeerRequest

// string address = 1;
inline void EnablePeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& EnablePeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnablePeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnablePeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.EnablePeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL EnablePeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.EnablePeerRequest.address)
  return _s;
}
inline const ::std::string& EnablePeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void EnablePeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnablePeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnablePeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.EnablePeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void EnablePeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.EnablePeerRequest.address)
}

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

// DisablePeerRequest

// string address = 1;
inline void DisablePeerRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DisablePeerRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DisablePeerRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DisablePeerRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DisablePeerRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL DisablePeerRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.DisablePeerRequest.address)
  return _s;
}
inline const ::std::string& DisablePeerRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void DisablePeerRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DisablePeerRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DisablePeerRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DisablePeerRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void DisablePeerRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DisablePeerRequest.address)
}

// string communication = 2;
inline void DisablePeerRequest::clear_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DisablePeerRequest::communication() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DisablePeerRequest.communication)
  return _internal_communication();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DisablePeerRequest::set_communication(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.communication_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DisablePeerRequest.communication)
}
inline ::std::string* PROTOBUF_NONNULL DisablePeerRequest::mutable_communication()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_communication();
  // @@protoc_insertion_point(field_mutable:apipb.DisablePeerRequest.communication)
  return _s;
}
inline const ::std::string& DisablePeerRequest::_internal_communication() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.communication_.Get();
}
inline void DisablePeerRequest::_internal_set_communication(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communication_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DisablePeerRequest::_internal_mutable_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.communication_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DisablePeerRequest::release_communication() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DisablePeerRequest.communication)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.communication_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.communication_.Set("", GetArena());
  }
  return released;
}
inline void DisablePeerRequest::set_allocated_communication(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.communication_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.communication_.IsDefault()) {
    _impl_.communication_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DisablePeerRequest.communication)
}

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

// AddPeerGroupRequest

// .apipb.PeerGroup peer_group = 1;
inline bool AddPeerGroupRequest::has_peer_group() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_group_ != nullptr);
  return value;
}
inline void AddPeerGroupRequest::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ != nullptr) _impl_.peer_group_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PeerGroup& AddPeerGroupRequest::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerGroup* p = _impl_.peer_group_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerGroup>(&::apipb::PeerGroup_globals_);
}
inline const ::apipb::PeerGroup& AddPeerGroupRequest::peer_group() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPeerGroupRequest.peer_group)
  return _internal_peer_group();
}
inline void AddPeerGroupRequest::unsafe_arena_set_allocated_peer_group(
    ::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }
  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPeerGroupRequest.peer_group)
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE AddPeerGroupRequest::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* released = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE AddPeerGroupRequest::unsafe_arena_release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPeerGroupRequest.peer_group)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* temp = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  return temp;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL AddPeerGroupRequest::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerGroup>(GetArena());
    _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(p);
  }
  return _impl_.peer_group_;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL AddPeerGroupRequest::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* _msg = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.AddPeerGroupRequest.peer_group)
  return _msg;
}
inline void AddPeerGroupRequest::set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPeerGroupRequest.peer_group)
}

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

// DeletePeerGroupRequest

// string name = 1;
inline void DeletePeerGroupRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeletePeerGroupRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePeerGroupRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeletePeerGroupRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeletePeerGroupRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerGroupRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePeerGroupRequest.name)
  return _s;
}
inline const ::std::string& DeletePeerGroupRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void DeletePeerGroupRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeletePeerGroupRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeletePeerGroupRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePeerGroupRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void DeletePeerGroupRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePeerGroupRequest.name)
}

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

// UpdatePeerGroupRequest

// .apipb.PeerGroup peer_group = 1;
inline bool UpdatePeerGroupRequest::has_peer_group() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_group_ != nullptr);
  return value;
}
inline void UpdatePeerGroupRequest::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ != nullptr) _impl_.peer_group_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PeerGroup& UpdatePeerGroupRequest::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerGroup* p = _impl_.peer_group_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerGroup>(&::apipb::PeerGroup_globals_);
}
inline const ::apipb::PeerGroup& UpdatePeerGroupRequest::peer_group() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerGroupRequest.peer_group)
  return _internal_peer_group();
}
inline void UpdatePeerGroupRequest::unsafe_arena_set_allocated_peer_group(
    ::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }
  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UpdatePeerGroupRequest.peer_group)
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE UpdatePeerGroupRequest::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* released = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE UpdatePeerGroupRequest::unsafe_arena_release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UpdatePeerGroupRequest.peer_group)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* temp = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  return temp;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL UpdatePeerGroupRequest::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerGroup>(GetArena());
    _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(p);
  }
  return _impl_.peer_group_;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL UpdatePeerGroupRequest::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* _msg = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.UpdatePeerGroupRequest.peer_group)
  return _msg;
}
inline void UpdatePeerGroupRequest::set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UpdatePeerGroupRequest.peer_group)
}

// bool do_soft_reset_in = 2;
inline void UpdatePeerGroupRequest::clear_do_soft_reset_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.do_soft_reset_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool UpdatePeerGroupRequest::do_soft_reset_in() const {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerGroupRequest.do_soft_reset_in)
  return _internal_do_soft_reset_in();
}
inline void UpdatePeerGroupRequest::set_do_soft_reset_in(bool value) {
  _internal_set_do_soft_reset_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.UpdatePeerGroupRequest.do_soft_reset_in)
}
inline bool UpdatePeerGroupRequest::_internal_do_soft_reset_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.do_soft_reset_in_;
}
inline void UpdatePeerGroupRequest::_internal_set_do_soft_reset_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.do_soft_reset_in_ = value;
}

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

// UpdatePeerGroupResponse

// bool needs_soft_reset_in = 1;
inline void UpdatePeerGroupResponse::clear_needs_soft_reset_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.needs_soft_reset_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool UpdatePeerGroupResponse::needs_soft_reset_in() const {
  // @@protoc_insertion_point(field_get:apipb.UpdatePeerGroupResponse.needs_soft_reset_in)
  return _internal_needs_soft_reset_in();
}
inline void UpdatePeerGroupResponse::set_needs_soft_reset_in(bool value) {
  _internal_set_needs_soft_reset_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.UpdatePeerGroupResponse.needs_soft_reset_in)
}
inline bool UpdatePeerGroupResponse::_internal_needs_soft_reset_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.needs_soft_reset_in_;
}
inline void UpdatePeerGroupResponse::_internal_set_needs_soft_reset_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.needs_soft_reset_in_ = value;
}

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

// ListPeerGroupRequest

// string peer_group_name = 1;
inline void ListPeerGroupRequest::clear_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListPeerGroupRequest::peer_group_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPeerGroupRequest.peer_group_name)
  return _internal_peer_group_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListPeerGroupRequest::set_peer_group_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.peer_group_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListPeerGroupRequest.peer_group_name)
}
inline ::std::string* PROTOBUF_NONNULL ListPeerGroupRequest::mutable_peer_group_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_peer_group_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListPeerGroupRequest.peer_group_name)
  return _s;
}
inline const ::std::string& ListPeerGroupRequest::_internal_peer_group_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_name_.Get();
}
inline void ListPeerGroupRequest::_internal_set_peer_group_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListPeerGroupRequest::_internal_mutable_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListPeerGroupRequest::release_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPeerGroupRequest.peer_group_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.peer_group_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  return released;
}
inline void ListPeerGroupRequest::set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.peer_group_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_name_.IsDefault()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPeerGroupRequest.peer_group_name)
}

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

// ListPeerGroupResponse

// .apipb.PeerGroup peer_group = 1;
inline bool ListPeerGroupResponse::has_peer_group() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.peer_group_ != nullptr);
  return value;
}
inline void ListPeerGroupResponse::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ != nullptr) _impl_.peer_group_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PeerGroup& ListPeerGroupResponse::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerGroup* p = _impl_.peer_group_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerGroup>(&::apipb::PeerGroup_globals_);
}
inline const ::apipb::PeerGroup& ListPeerGroupResponse::peer_group() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPeerGroupResponse.peer_group)
  return _internal_peer_group();
}
inline void ListPeerGroupResponse::unsafe_arena_set_allocated_peer_group(
    ::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }
  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPeerGroupResponse.peer_group)
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE ListPeerGroupResponse::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* released = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerGroup* PROTOBUF_NULLABLE ListPeerGroupResponse::unsafe_arena_release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPeerGroupResponse.peer_group)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* temp = _impl_.peer_group_;
  _impl_.peer_group_ = nullptr;
  return temp;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL ListPeerGroupResponse::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.peer_group_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerGroup>(GetArena());
    _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(p);
  }
  return _impl_.peer_group_;
}
inline ::apipb::PeerGroup* PROTOBUF_NONNULL ListPeerGroupResponse::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PeerGroup* _msg = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.ListPeerGroupResponse.peer_group)
  return _msg;
}
inline void ListPeerGroupResponse::set_allocated_peer_group(::apipb::PeerGroup* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.peer_group_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.peer_group_ = reinterpret_cast<::apipb::PeerGroup*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPeerGroupResponse.peer_group)
}

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

// AddDynamicNeighborRequest

// .apipb.DynamicNeighbor dynamic_neighbor = 1;
inline bool AddDynamicNeighborRequest::has_dynamic_neighbor() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.dynamic_neighbor_ != nullptr);
  return value;
}
inline void AddDynamicNeighborRequest::clear_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dynamic_neighbor_ != nullptr) _impl_.dynamic_neighbor_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DynamicNeighbor& AddDynamicNeighborRequest::_internal_dynamic_neighbor() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DynamicNeighbor* p = _impl_.dynamic_neighbor_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DynamicNeighbor>(&::apipb::DynamicNeighbor_globals_);
}
inline const ::apipb::DynamicNeighbor& AddDynamicNeighborRequest::dynamic_neighbor() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddDynamicNeighborRequest.dynamic_neighbor)
  return _internal_dynamic_neighbor();
}
inline void AddDynamicNeighborRequest::unsafe_arena_set_allocated_dynamic_neighbor(
    ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dynamic_neighbor_);
  }
  _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddDynamicNeighborRequest.dynamic_neighbor)
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE AddDynamicNeighborRequest::release_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* released = _impl_.dynamic_neighbor_;
  _impl_.dynamic_neighbor_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE AddDynamicNeighborRequest::unsafe_arena_release_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddDynamicNeighborRequest.dynamic_neighbor)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* temp = _impl_.dynamic_neighbor_;
  _impl_.dynamic_neighbor_ = nullptr;
  return temp;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NONNULL AddDynamicNeighborRequest::_internal_mutable_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dynamic_neighbor_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DynamicNeighbor>(GetArena());
    _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(p);
  }
  return _impl_.dynamic_neighbor_;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NONNULL AddDynamicNeighborRequest::mutable_dynamic_neighbor()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* _msg = _internal_mutable_dynamic_neighbor();
  // @@protoc_insertion_point(field_mutable:apipb.AddDynamicNeighborRequest.dynamic_neighbor)
  return _msg;
}
inline void AddDynamicNeighborRequest::set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dynamic_neighbor_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddDynamicNeighborRequest.dynamic_neighbor)
}

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

// DeleteDynamicNeighborRequest

// string prefix = 1;
inline void DeleteDynamicNeighborRequest::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteDynamicNeighborRequest::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteDynamicNeighborRequest.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteDynamicNeighborRequest::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeleteDynamicNeighborRequest.prefix)
}
inline ::std::string* PROTOBUF_NONNULL DeleteDynamicNeighborRequest::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteDynamicNeighborRequest.prefix)
  return _s;
}
inline const ::std::string& DeleteDynamicNeighborRequest::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void DeleteDynamicNeighborRequest::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteDynamicNeighborRequest::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteDynamicNeighborRequest::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteDynamicNeighborRequest.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void DeleteDynamicNeighborRequest::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteDynamicNeighborRequest.prefix)
}

// string peer_group = 2;
inline void DeleteDynamicNeighborRequest::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DeleteDynamicNeighborRequest::peer_group() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteDynamicNeighborRequest.peer_group)
  return _internal_peer_group();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteDynamicNeighborRequest::set_peer_group(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.peer_group_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeleteDynamicNeighborRequest.peer_group)
}
inline ::std::string* PROTOBUF_NONNULL DeleteDynamicNeighborRequest::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteDynamicNeighborRequest.peer_group)
  return _s;
}
inline const ::std::string& DeleteDynamicNeighborRequest::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_.Get();
}
inline void DeleteDynamicNeighborRequest::_internal_set_peer_group(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteDynamicNeighborRequest::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteDynamicNeighborRequest::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteDynamicNeighborRequest.peer_group)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.peer_group_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  return released;
}
inline void DeleteDynamicNeighborRequest::set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.peer_group_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_.IsDefault()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteDynamicNeighborRequest.peer_group)
}

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

// ListDynamicNeighborRequest

// string peer_group = 1;
inline void ListDynamicNeighborRequest::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListDynamicNeighborRequest::peer_group() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListDynamicNeighborRequest.peer_group)
  return _internal_peer_group();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListDynamicNeighborRequest::set_peer_group(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.peer_group_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListDynamicNeighborRequest.peer_group)
}
inline ::std::string* PROTOBUF_NONNULL ListDynamicNeighborRequest::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.ListDynamicNeighborRequest.peer_group)
  return _s;
}
inline const ::std::string& ListDynamicNeighborRequest::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_.Get();
}
inline void ListDynamicNeighborRequest::_internal_set_peer_group(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListDynamicNeighborRequest::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListDynamicNeighborRequest::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListDynamicNeighborRequest.peer_group)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.peer_group_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  return released;
}
inline void ListDynamicNeighborRequest::set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.peer_group_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_.IsDefault()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListDynamicNeighborRequest.peer_group)
}

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

// ListDynamicNeighborResponse

// .apipb.DynamicNeighbor dynamic_neighbor = 1;
inline bool ListDynamicNeighborResponse::has_dynamic_neighbor() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.dynamic_neighbor_ != nullptr);
  return value;
}
inline void ListDynamicNeighborResponse::clear_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dynamic_neighbor_ != nullptr) _impl_.dynamic_neighbor_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DynamicNeighbor& ListDynamicNeighborResponse::_internal_dynamic_neighbor() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DynamicNeighbor* p = _impl_.dynamic_neighbor_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DynamicNeighbor>(&::apipb::DynamicNeighbor_globals_);
}
inline const ::apipb::DynamicNeighbor& ListDynamicNeighborResponse::dynamic_neighbor() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListDynamicNeighborResponse.dynamic_neighbor)
  return _internal_dynamic_neighbor();
}
inline void ListDynamicNeighborResponse::unsafe_arena_set_allocated_dynamic_neighbor(
    ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dynamic_neighbor_);
  }
  _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListDynamicNeighborResponse.dynamic_neighbor)
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE ListDynamicNeighborResponse::release_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* released = _impl_.dynamic_neighbor_;
  _impl_.dynamic_neighbor_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NULLABLE ListDynamicNeighborResponse::unsafe_arena_release_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListDynamicNeighborResponse.dynamic_neighbor)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* temp = _impl_.dynamic_neighbor_;
  _impl_.dynamic_neighbor_ = nullptr;
  return temp;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NONNULL ListDynamicNeighborResponse::_internal_mutable_dynamic_neighbor() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dynamic_neighbor_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DynamicNeighbor>(GetArena());
    _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(p);
  }
  return _impl_.dynamic_neighbor_;
}
inline ::apipb::DynamicNeighbor* PROTOBUF_NONNULL ListDynamicNeighborResponse::mutable_dynamic_neighbor()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DynamicNeighbor* _msg = _internal_mutable_dynamic_neighbor();
  // @@protoc_insertion_point(field_mutable:apipb.ListDynamicNeighborResponse.dynamic_neighbor)
  return _msg;
}
inline void ListDynamicNeighborResponse::set_allocated_dynamic_neighbor(::apipb::DynamicNeighbor* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dynamic_neighbor_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.dynamic_neighbor_ = reinterpret_cast<::apipb::DynamicNeighbor*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListDynamicNeighborResponse.dynamic_neighbor)
}

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

// AddPathRequest

// .apipb.TableType table_type = 1;
inline void AddPathRequest::clear_table_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::apipb::TableType AddPathRequest::table_type() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathRequest.table_type)
  return _internal_table_type();
}
inline void AddPathRequest::set_table_type(::apipb::TableType value) {
  _internal_set_table_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.AddPathRequest.table_type)
}
inline ::apipb::TableType AddPathRequest::_internal_table_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableType>(_impl_.table_type_);
}
inline void AddPathRequest::_internal_set_table_type(::apipb::TableType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = value;
}

// string vrf_id = 2;
inline void AddPathRequest::clear_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& AddPathRequest::vrf_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPathRequest.vrf_id)
  return _internal_vrf_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddPathRequest::set_vrf_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.vrf_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddPathRequest.vrf_id)
}
inline ::std::string* PROTOBUF_NONNULL AddPathRequest::mutable_vrf_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_vrf_id();
  // @@protoc_insertion_point(field_mutable:apipb.AddPathRequest.vrf_id)
  return _s;
}
inline const ::std::string& AddPathRequest::_internal_vrf_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.vrf_id_.Get();
}
inline void AddPathRequest::_internal_set_vrf_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddPathRequest::_internal_mutable_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.vrf_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddPathRequest::release_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPathRequest.vrf_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.vrf_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  return released;
}
inline void AddPathRequest::set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.vrf_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.vrf_id_.IsDefault()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPathRequest.vrf_id)
}

// .apipb.Path path = 3;
inline bool AddPathRequest::has_path() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.path_ != nullptr);
  return value;
}
inline void AddPathRequest::clear_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.path_ != nullptr) _impl_.path_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Path& AddPathRequest::_internal_path() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Path* p = _impl_.path_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Path>(&::apipb::Path_globals_);
}
inline const ::apipb::Path& AddPathRequest::path() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPathRequest.path)
  return _internal_path();
}
inline void AddPathRequest::unsafe_arena_set_allocated_path(
    ::apipb::Path* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.path_);
  }
  _impl_.path_ = reinterpret_cast<::apipb::Path*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPathRequest.path)
}
inline ::apipb::Path* PROTOBUF_NULLABLE AddPathRequest::release_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Path* released = _impl_.path_;
  _impl_.path_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Path* PROTOBUF_NULLABLE AddPathRequest::unsafe_arena_release_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPathRequest.path)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Path* temp = _impl_.path_;
  _impl_.path_ = nullptr;
  return temp;
}
inline ::apipb::Path* PROTOBUF_NONNULL AddPathRequest::_internal_mutable_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.path_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Path>(GetArena());
    _impl_.path_ = reinterpret_cast<::apipb::Path*>(p);
  }
  return _impl_.path_;
}
inline ::apipb::Path* PROTOBUF_NONNULL AddPathRequest::mutable_path()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Path* _msg = _internal_mutable_path();
  // @@protoc_insertion_point(field_mutable:apipb.AddPathRequest.path)
  return _msg;
}
inline void AddPathRequest::set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.path_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.path_ = reinterpret_cast<::apipb::Path*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPathRequest.path)
}

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

// AddPathResponse

// bytes uuid = 1;
inline void AddPathResponse::clear_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& AddPathResponse::uuid() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPathResponse.uuid)
  return _internal_uuid();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddPathResponse::set_uuid(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.uuid_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddPathResponse.uuid)
}
inline ::std::string* PROTOBUF_NONNULL AddPathResponse::mutable_uuid()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_uuid();
  // @@protoc_insertion_point(field_mutable:apipb.AddPathResponse.uuid)
  return _s;
}
inline const ::std::string& AddPathResponse::_internal_uuid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.uuid_.Get();
}
inline void AddPathResponse::_internal_set_uuid(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddPathResponse::_internal_mutable_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.uuid_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddPathResponse::release_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPathResponse.uuid)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.uuid_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.uuid_.Set("", GetArena());
  }
  return released;
}
inline void AddPathResponse::set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.uuid_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.uuid_.IsDefault()) {
    _impl_.uuid_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPathResponse.uuid)
}

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

// DeletePathRequest

// .apipb.TableType table_type = 1;
inline void DeletePathRequest::clear_table_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::apipb::TableType DeletePathRequest::table_type() const {
  // @@protoc_insertion_point(field_get:apipb.DeletePathRequest.table_type)
  return _internal_table_type();
}
inline void DeletePathRequest::set_table_type(::apipb::TableType value) {
  _internal_set_table_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.DeletePathRequest.table_type)
}
inline ::apipb::TableType DeletePathRequest::_internal_table_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableType>(_impl_.table_type_);
}
inline void DeletePathRequest::_internal_set_table_type(::apipb::TableType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = value;
}

// string vrf_id = 2;
inline void DeletePathRequest::clear_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeletePathRequest::vrf_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePathRequest.vrf_id)
  return _internal_vrf_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeletePathRequest::set_vrf_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.vrf_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeletePathRequest.vrf_id)
}
inline ::std::string* PROTOBUF_NONNULL DeletePathRequest::mutable_vrf_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_vrf_id();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePathRequest.vrf_id)
  return _s;
}
inline const ::std::string& DeletePathRequest::_internal_vrf_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.vrf_id_.Get();
}
inline void DeletePathRequest::_internal_set_vrf_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeletePathRequest::_internal_mutable_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.vrf_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeletePathRequest::release_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePathRequest.vrf_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.vrf_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  return released;
}
inline void DeletePathRequest::set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.vrf_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.vrf_id_.IsDefault()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePathRequest.vrf_id)
}

// .apipb.Family family = 3;
inline bool DeletePathRequest::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void DeletePathRequest::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::Family& DeletePathRequest::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& DeletePathRequest::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePathRequest.family)
  return _internal_family();
}
inline void DeletePathRequest::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeletePathRequest.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE DeletePathRequest::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE DeletePathRequest::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePathRequest.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL DeletePathRequest::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL DeletePathRequest::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePathRequest.family)
  return _msg;
}
inline void DeletePathRequest::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePathRequest.family)
}

// .apipb.Path path = 4;
inline bool DeletePathRequest::has_path() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.path_ != nullptr);
  return value;
}
inline void DeletePathRequest::clear_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.path_ != nullptr) _impl_.path_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::Path& DeletePathRequest::_internal_path() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Path* p = _impl_.path_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Path>(&::apipb::Path_globals_);
}
inline const ::apipb::Path& DeletePathRequest::path() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePathRequest.path)
  return _internal_path();
}
inline void DeletePathRequest::unsafe_arena_set_allocated_path(
    ::apipb::Path* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.path_);
  }
  _impl_.path_ = reinterpret_cast<::apipb::Path*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeletePathRequest.path)
}
inline ::apipb::Path* PROTOBUF_NULLABLE DeletePathRequest::release_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Path* released = _impl_.path_;
  _impl_.path_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Path* PROTOBUF_NULLABLE DeletePathRequest::unsafe_arena_release_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePathRequest.path)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Path* temp = _impl_.path_;
  _impl_.path_ = nullptr;
  return temp;
}
inline ::apipb::Path* PROTOBUF_NONNULL DeletePathRequest::_internal_mutable_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.path_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Path>(GetArena());
    _impl_.path_ = reinterpret_cast<::apipb::Path*>(p);
  }
  return _impl_.path_;
}
inline ::apipb::Path* PROTOBUF_NONNULL DeletePathRequest::mutable_path()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Path* _msg = _internal_mutable_path();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePathRequest.path)
  return _msg;
}
inline void DeletePathRequest::set_allocated_path(::apipb::Path* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.path_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.path_ = reinterpret_cast<::apipb::Path*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePathRequest.path)
}

// bytes uuid = 5;
inline void DeletePathRequest::clear_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DeletePathRequest::uuid() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePathRequest.uuid)
  return _internal_uuid();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeletePathRequest::set_uuid(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.uuid_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeletePathRequest.uuid)
}
inline ::std::string* PROTOBUF_NONNULL DeletePathRequest::mutable_uuid()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_uuid();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePathRequest.uuid)
  return _s;
}
inline const ::std::string& DeletePathRequest::_internal_uuid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.uuid_.Get();
}
inline void DeletePathRequest::_internal_set_uuid(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeletePathRequest::_internal_mutable_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.uuid_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeletePathRequest::release_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePathRequest.uuid)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.uuid_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.uuid_.Set("", GetArena());
  }
  return released;
}
inline void DeletePathRequest::set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.uuid_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.uuid_.IsDefault()) {
    _impl_.uuid_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePathRequest.uuid)
}

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

// TableLookupPrefix

// string prefix = 1;
inline void TableLookupPrefix::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& TableLookupPrefix::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.TableLookupPrefix.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TableLookupPrefix::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.TableLookupPrefix.prefix)
}
inline ::std::string* PROTOBUF_NONNULL TableLookupPrefix::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.TableLookupPrefix.prefix)
  return _s;
}
inline const ::std::string& TableLookupPrefix::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void TableLookupPrefix::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TableLookupPrefix::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TableLookupPrefix::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.TableLookupPrefix.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void TableLookupPrefix::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.TableLookupPrefix.prefix)
}

// .apipb.TableLookupPrefix.Type type = 2;
inline void TableLookupPrefix::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::TableLookupPrefix_Type TableLookupPrefix::type() const {
  // @@protoc_insertion_point(field_get:apipb.TableLookupPrefix.type)
  return _internal_type();
}
inline void TableLookupPrefix::set_type(::apipb::TableLookupPrefix_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.TableLookupPrefix.type)
}
inline ::apipb::TableLookupPrefix_Type TableLookupPrefix::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableLookupPrefix_Type>(_impl_.type_);
}
inline void TableLookupPrefix::_internal_set_type(::apipb::TableLookupPrefix_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

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

// ListPathRequest

// .apipb.TableType table_type = 1;
inline void ListPathRequest::clear_table_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::TableType ListPathRequest::table_type() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.table_type)
  return _internal_table_type();
}
inline void ListPathRequest::set_table_type(::apipb::TableType value) {
  _internal_set_table_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.table_type)
}
inline ::apipb::TableType ListPathRequest::_internal_table_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableType>(_impl_.table_type_);
}
inline void ListPathRequest::_internal_set_table_type(::apipb::TableType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = value;
}

// string name = 2;
inline void ListPathRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListPathRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListPathRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListPathRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListPathRequest.name)
  return _s;
}
inline const ::std::string& ListPathRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListPathRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListPathRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListPathRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPathRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListPathRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPathRequest.name)
}

// .apipb.Family family = 3;
inline bool ListPathRequest::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void ListPathRequest::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::Family& ListPathRequest::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& ListPathRequest::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.family)
  return _internal_family();
}
inline void ListPathRequest::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPathRequest.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListPathRequest::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListPathRequest::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPathRequest.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListPathRequest::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListPathRequest::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.ListPathRequest.family)
  return _msg;
}
inline void ListPathRequest::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPathRequest.family)
}

// repeated .apipb.TableLookupPrefix prefixes = 4;
inline int ListPathRequest::_internal_prefixes_size() const {
  return _internal_prefixes().size();
}
inline int ListPathRequest::prefixes_size() const {
  return _internal_prefixes_size();
}
inline void ListPathRequest::clear_prefixes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefixes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::TableLookupPrefix& ListPathRequest::prefixes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.prefixes)
  return _internal_prefixes().Get(index);
}
inline ::apipb::TableLookupPrefix* PROTOBUF_NONNULL ListPathRequest::mutable_prefixes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.ListPathRequest.prefixes)
  return _internal_mutable_prefixes()->Mutable(index);
}
inline ::apipb::TableLookupPrefix* PROTOBUF_NONNULL ListPathRequest::add_prefixes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::TableLookupPrefix* _add =
      _internal_mutable_prefixes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.ListPathRequest.prefixes)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>& ListPathRequest::prefixes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.ListPathRequest.prefixes)
  return _internal_prefixes();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>* PROTOBUF_NONNULL
ListPathRequest::mutable_prefixes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.ListPathRequest.prefixes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_prefixes();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>&
ListPathRequest::_internal_prefixes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefixes_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::TableLookupPrefix>* PROTOBUF_NONNULL
ListPathRequest::_internal_mutable_prefixes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.prefixes_;
}

// .apipb.ListPathRequest.SortType sort_type = 5;
inline void ListPathRequest::clear_sort_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sort_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::apipb::ListPathRequest_SortType ListPathRequest::sort_type() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.sort_type)
  return _internal_sort_type();
}
inline void ListPathRequest::set_sort_type(::apipb::ListPathRequest_SortType value) {
  _internal_set_sort_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.sort_type)
}
inline ::apipb::ListPathRequest_SortType ListPathRequest::_internal_sort_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::ListPathRequest_SortType>(_impl_.sort_type_);
}
inline void ListPathRequest::_internal_set_sort_type(::apipb::ListPathRequest_SortType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sort_type_ = value;
}

// bool enable_filtered = 6;
inline void ListPathRequest::clear_enable_filtered() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_filtered_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool ListPathRequest::enable_filtered() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.enable_filtered)
  return _internal_enable_filtered();
}
inline void ListPathRequest::set_enable_filtered(bool value) {
  _internal_set_enable_filtered(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.enable_filtered)
}
inline bool ListPathRequest::_internal_enable_filtered() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_filtered_;
}
inline void ListPathRequest::_internal_set_enable_filtered(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_filtered_ = value;
}

// bool enable_nlri_binary = 7;
inline void ListPathRequest::clear_enable_nlri_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_nlri_binary_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline bool ListPathRequest::enable_nlri_binary() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.enable_nlri_binary)
  return _internal_enable_nlri_binary();
}
inline void ListPathRequest::set_enable_nlri_binary(bool value) {
  _internal_set_enable_nlri_binary(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.enable_nlri_binary)
}
inline bool ListPathRequest::_internal_enable_nlri_binary() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_nlri_binary_;
}
inline void ListPathRequest::_internal_set_enable_nlri_binary(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_nlri_binary_ = value;
}

// bool enable_attribute_binary = 8;
inline void ListPathRequest::clear_enable_attribute_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_attribute_binary_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline bool ListPathRequest::enable_attribute_binary() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.enable_attribute_binary)
  return _internal_enable_attribute_binary();
}
inline void ListPathRequest::set_enable_attribute_binary(bool value) {
  _internal_set_enable_attribute_binary(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.enable_attribute_binary)
}
inline bool ListPathRequest::_internal_enable_attribute_binary() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_attribute_binary_;
}
inline void ListPathRequest::_internal_set_enable_attribute_binary(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_attribute_binary_ = value;
}

// bool enable_only_binary = 9;
inline void ListPathRequest::clear_enable_only_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_only_binary_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline bool ListPathRequest::enable_only_binary() const {
  // @@protoc_insertion_point(field_get:apipb.ListPathRequest.enable_only_binary)
  return _internal_enable_only_binary();
}
inline void ListPathRequest::set_enable_only_binary(bool value) {
  _internal_set_enable_only_binary(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.ListPathRequest.enable_only_binary)
}
inline bool ListPathRequest::_internal_enable_only_binary() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_only_binary_;
}
inline void ListPathRequest::_internal_set_enable_only_binary(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_only_binary_ = value;
}

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

// ListPathResponse

// .apipb.Destination destination = 1;
inline bool ListPathResponse::has_destination() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.destination_ != nullptr);
  return value;
}
inline void ListPathResponse::clear_destination() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.destination_ != nullptr) _impl_.destination_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Destination& ListPathResponse::_internal_destination() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Destination* p = _impl_.destination_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Destination>(&::apipb::Destination_globals_);
}
inline const ::apipb::Destination& ListPathResponse::destination() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPathResponse.destination)
  return _internal_destination();
}
inline void ListPathResponse::unsafe_arena_set_allocated_destination(
    ::apipb::Destination* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.destination_);
  }
  _impl_.destination_ = reinterpret_cast<::apipb::Destination*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPathResponse.destination)
}
inline ::apipb::Destination* PROTOBUF_NULLABLE ListPathResponse::release_destination() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Destination* released = _impl_.destination_;
  _impl_.destination_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Destination* PROTOBUF_NULLABLE ListPathResponse::unsafe_arena_release_destination() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPathResponse.destination)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Destination* temp = _impl_.destination_;
  _impl_.destination_ = nullptr;
  return temp;
}
inline ::apipb::Destination* PROTOBUF_NONNULL ListPathResponse::_internal_mutable_destination() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.destination_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Destination>(GetArena());
    _impl_.destination_ = reinterpret_cast<::apipb::Destination*>(p);
  }
  return _impl_.destination_;
}
inline ::apipb::Destination* PROTOBUF_NONNULL ListPathResponse::mutable_destination()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Destination* _msg = _internal_mutable_destination();
  // @@protoc_insertion_point(field_mutable:apipb.ListPathResponse.destination)
  return _msg;
}
inline void ListPathResponse::set_allocated_destination(::apipb::Destination* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.destination_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.destination_ = reinterpret_cast<::apipb::Destination*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPathResponse.destination)
}

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

// AddPathStreamRequest

// .apipb.TableType table_type = 1;
inline void AddPathStreamRequest::clear_table_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::apipb::TableType AddPathStreamRequest::table_type() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathStreamRequest.table_type)
  return _internal_table_type();
}
inline void AddPathStreamRequest::set_table_type(::apipb::TableType value) {
  _internal_set_table_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.AddPathStreamRequest.table_type)
}
inline ::apipb::TableType AddPathStreamRequest::_internal_table_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableType>(_impl_.table_type_);
}
inline void AddPathStreamRequest::_internal_set_table_type(::apipb::TableType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = value;
}

// string vrf_id = 2;
inline void AddPathStreamRequest::clear_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& AddPathStreamRequest::vrf_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPathStreamRequest.vrf_id)
  return _internal_vrf_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddPathStreamRequest::set_vrf_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.vrf_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddPathStreamRequest.vrf_id)
}
inline ::std::string* PROTOBUF_NONNULL AddPathStreamRequest::mutable_vrf_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_vrf_id();
  // @@protoc_insertion_point(field_mutable:apipb.AddPathStreamRequest.vrf_id)
  return _s;
}
inline const ::std::string& AddPathStreamRequest::_internal_vrf_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.vrf_id_.Get();
}
inline void AddPathStreamRequest::_internal_set_vrf_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddPathStreamRequest::_internal_mutable_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.vrf_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddPathStreamRequest::release_vrf_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPathStreamRequest.vrf_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.vrf_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  return released;
}
inline void AddPathStreamRequest::set_allocated_vrf_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.vrf_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.vrf_id_.IsDefault()) {
    _impl_.vrf_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPathStreamRequest.vrf_id)
}

// repeated .apipb.Path paths = 3;
inline int AddPathStreamRequest::_internal_paths_size() const {
  return _internal_paths().size();
}
inline int AddPathStreamRequest::paths_size() const {
  return _internal_paths_size();
}
inline void AddPathStreamRequest::clear_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.paths_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Path& AddPathStreamRequest::paths(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPathStreamRequest.paths)
  return _internal_paths().Get(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL AddPathStreamRequest::mutable_paths(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.AddPathStreamRequest.paths)
  return _internal_mutable_paths()->Mutable(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL AddPathStreamRequest::add_paths()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Path* _add =
      _internal_mutable_paths()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.AddPathStreamRequest.paths)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>& AddPathStreamRequest::paths() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.AddPathStreamRequest.paths)
  return _internal_paths();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
AddPathStreamRequest::mutable_paths() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.AddPathStreamRequest.paths)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_paths();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
AddPathStreamRequest::_internal_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.paths_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
AddPathStreamRequest::_internal_mutable_paths() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.paths_;
}

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

// GetTableRequest

// .apipb.TableType table_type = 1;
inline void GetTableRequest::clear_table_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::apipb::TableType GetTableRequest::table_type() const {
  // @@protoc_insertion_point(field_get:apipb.GetTableRequest.table_type)
  return _internal_table_type();
}
inline void GetTableRequest::set_table_type(::apipb::TableType value) {
  _internal_set_table_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.GetTableRequest.table_type)
}
inline ::apipb::TableType GetTableRequest::_internal_table_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::TableType>(_impl_.table_type_);
}
inline void GetTableRequest::_internal_set_table_type(::apipb::TableType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_type_ = value;
}

// .apipb.Family family = 2;
inline bool GetTableRequest::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void GetTableRequest::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Family& GetTableRequest::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& GetTableRequest::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.GetTableRequest.family)
  return _internal_family();
}
inline void GetTableRequest::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.GetTableRequest.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE GetTableRequest::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE GetTableRequest::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.GetTableRequest.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL GetTableRequest::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL GetTableRequest::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.GetTableRequest.family)
  return _msg;
}
inline void GetTableRequest::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.GetTableRequest.family)
}

// string name = 3;
inline void GetTableRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& GetTableRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.GetTableRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void GetTableRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.GetTableRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL GetTableRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.GetTableRequest.name)
  return _s;
}
inline const ::std::string& GetTableRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void GetTableRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL GetTableRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE GetTableRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.GetTableRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void GetTableRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.GetTableRequest.name)
}

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

// GetTableResponse

// uint64 num_destination = 1;
inline void GetTableResponse::clear_num_destination() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_destination_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t GetTableResponse::num_destination() const {
  // @@protoc_insertion_point(field_get:apipb.GetTableResponse.num_destination)
  return _internal_num_destination();
}
inline void GetTableResponse::set_num_destination(::uint64_t value) {
  _internal_set_num_destination(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.GetTableResponse.num_destination)
}
inline ::uint64_t GetTableResponse::_internal_num_destination() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.num_destination_;
}
inline void GetTableResponse::_internal_set_num_destination(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_destination_ = value;
}

// uint64 num_path = 2;
inline void GetTableResponse::clear_num_path() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_path_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t GetTableResponse::num_path() const {
  // @@protoc_insertion_point(field_get:apipb.GetTableResponse.num_path)
  return _internal_num_path();
}
inline void GetTableResponse::set_num_path(::uint64_t value) {
  _internal_set_num_path(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.GetTableResponse.num_path)
}
inline ::uint64_t GetTableResponse::_internal_num_path() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.num_path_;
}
inline void GetTableResponse::_internal_set_num_path(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_path_ = value;
}

// uint64 num_accepted = 3;
inline void GetTableResponse::clear_num_accepted() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_accepted_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t GetTableResponse::num_accepted() const {
  // @@protoc_insertion_point(field_get:apipb.GetTableResponse.num_accepted)
  return _internal_num_accepted();
}
inline void GetTableResponse::set_num_accepted(::uint64_t value) {
  _internal_set_num_accepted(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.GetTableResponse.num_accepted)
}
inline ::uint64_t GetTableResponse::_internal_num_accepted() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.num_accepted_;
}
inline void GetTableResponse::_internal_set_num_accepted(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_accepted_ = value;
}

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

// AddVrfRequest

// .apipb.Vrf vrf = 1;
inline bool AddVrfRequest::has_vrf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.vrf_ != nullptr);
  return value;
}
inline void AddVrfRequest::clear_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.vrf_ != nullptr) _impl_.vrf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Vrf& AddVrfRequest::_internal_vrf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Vrf* p = _impl_.vrf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Vrf>(&::apipb::Vrf_globals_);
}
inline const ::apipb::Vrf& AddVrfRequest::vrf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddVrfRequest.vrf)
  return _internal_vrf();
}
inline void AddVrfRequest::unsafe_arena_set_allocated_vrf(
    ::apipb::Vrf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.vrf_);
  }
  _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddVrfRequest.vrf)
}
inline ::apipb::Vrf* PROTOBUF_NULLABLE AddVrfRequest::release_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* released = _impl_.vrf_;
  _impl_.vrf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Vrf* PROTOBUF_NULLABLE AddVrfRequest::unsafe_arena_release_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddVrfRequest.vrf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* temp = _impl_.vrf_;
  _impl_.vrf_ = nullptr;
  return temp;
}
inline ::apipb::Vrf* PROTOBUF_NONNULL AddVrfRequest::_internal_mutable_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.vrf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Vrf>(GetArena());
    _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(p);
  }
  return _impl_.vrf_;
}
inline ::apipb::Vrf* PROTOBUF_NONNULL AddVrfRequest::mutable_vrf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* _msg = _internal_mutable_vrf();
  // @@protoc_insertion_point(field_mutable:apipb.AddVrfRequest.vrf)
  return _msg;
}
inline void AddVrfRequest::set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.vrf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddVrfRequest.vrf)
}

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

// DeleteVrfRequest

// string name = 1;
inline void DeleteVrfRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteVrfRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteVrfRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteVrfRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeleteVrfRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL DeleteVrfRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteVrfRequest.name)
  return _s;
}
inline const ::std::string& DeleteVrfRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void DeleteVrfRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteVrfRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteVrfRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteVrfRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void DeleteVrfRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteVrfRequest.name)
}

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

// ListVrfRequest

// string name = 1;
inline void ListVrfRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListVrfRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListVrfRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListVrfRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListVrfRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListVrfRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListVrfRequest.name)
  return _s;
}
inline const ::std::string& ListVrfRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListVrfRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListVrfRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListVrfRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListVrfRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListVrfRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListVrfRequest.name)
}

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

// ListVrfResponse

// .apipb.Vrf vrf = 1;
inline bool ListVrfResponse::has_vrf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.vrf_ != nullptr);
  return value;
}
inline void ListVrfResponse::clear_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.vrf_ != nullptr) _impl_.vrf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Vrf& ListVrfResponse::_internal_vrf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Vrf* p = _impl_.vrf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Vrf>(&::apipb::Vrf_globals_);
}
inline const ::apipb::Vrf& ListVrfResponse::vrf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListVrfResponse.vrf)
  return _internal_vrf();
}
inline void ListVrfResponse::unsafe_arena_set_allocated_vrf(
    ::apipb::Vrf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.vrf_);
  }
  _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListVrfResponse.vrf)
}
inline ::apipb::Vrf* PROTOBUF_NULLABLE ListVrfResponse::release_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* released = _impl_.vrf_;
  _impl_.vrf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Vrf* PROTOBUF_NULLABLE ListVrfResponse::unsafe_arena_release_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListVrfResponse.vrf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* temp = _impl_.vrf_;
  _impl_.vrf_ = nullptr;
  return temp;
}
inline ::apipb::Vrf* PROTOBUF_NONNULL ListVrfResponse::_internal_mutable_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.vrf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Vrf>(GetArena());
    _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(p);
  }
  return _impl_.vrf_;
}
inline ::apipb::Vrf* PROTOBUF_NONNULL ListVrfResponse::mutable_vrf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Vrf* _msg = _internal_mutable_vrf();
  // @@protoc_insertion_point(field_mutable:apipb.ListVrfResponse.vrf)
  return _msg;
}
inline void ListVrfResponse::set_allocated_vrf(::apipb::Vrf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.vrf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.vrf_ = reinterpret_cast<::apipb::Vrf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListVrfResponse.vrf)
}

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

// AddPolicyRequest

// .apipb.Policy policy = 1;
inline bool AddPolicyRequest::has_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.policy_ != nullptr);
  return value;
}
inline void AddPolicyRequest::clear_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ != nullptr) _impl_.policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Policy& AddPolicyRequest::_internal_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Policy* p = _impl_.policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Policy>(&::apipb::Policy_globals_);
}
inline const ::apipb::Policy& AddPolicyRequest::policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPolicyRequest.policy)
  return _internal_policy();
}
inline void AddPolicyRequest::unsafe_arena_set_allocated_policy(
    ::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }
  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPolicyRequest.policy)
}
inline ::apipb::Policy* PROTOBUF_NULLABLE AddPolicyRequest::release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* released = _impl_.policy_;
  _impl_.policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Policy* PROTOBUF_NULLABLE AddPolicyRequest::unsafe_arena_release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPolicyRequest.policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* temp = _impl_.policy_;
  _impl_.policy_ = nullptr;
  return temp;
}
inline ::apipb::Policy* PROTOBUF_NONNULL AddPolicyRequest::_internal_mutable_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Policy>(GetArena());
    _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(p);
  }
  return _impl_.policy_;
}
inline ::apipb::Policy* PROTOBUF_NONNULL AddPolicyRequest::mutable_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* _msg = _internal_mutable_policy();
  // @@protoc_insertion_point(field_mutable:apipb.AddPolicyRequest.policy)
  return _msg;
}
inline void AddPolicyRequest::set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPolicyRequest.policy)
}

// bool refer_existing_statements = 2;
inline void AddPolicyRequest::clear_refer_existing_statements() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.refer_existing_statements_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool AddPolicyRequest::refer_existing_statements() const {
  // @@protoc_insertion_point(field_get:apipb.AddPolicyRequest.refer_existing_statements)
  return _internal_refer_existing_statements();
}
inline void AddPolicyRequest::set_refer_existing_statements(bool value) {
  _internal_set_refer_existing_statements(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AddPolicyRequest.refer_existing_statements)
}
inline bool AddPolicyRequest::_internal_refer_existing_statements() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.refer_existing_statements_;
}
inline void AddPolicyRequest::_internal_set_refer_existing_statements(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.refer_existing_statements_ = value;
}

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

// DeletePolicyRequest

// .apipb.Policy policy = 1;
inline bool DeletePolicyRequest::has_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.policy_ != nullptr);
  return value;
}
inline void DeletePolicyRequest::clear_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ != nullptr) _impl_.policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Policy& DeletePolicyRequest::_internal_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Policy* p = _impl_.policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Policy>(&::apipb::Policy_globals_);
}
inline const ::apipb::Policy& DeletePolicyRequest::policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePolicyRequest.policy)
  return _internal_policy();
}
inline void DeletePolicyRequest::unsafe_arena_set_allocated_policy(
    ::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }
  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeletePolicyRequest.policy)
}
inline ::apipb::Policy* PROTOBUF_NULLABLE DeletePolicyRequest::release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* released = _impl_.policy_;
  _impl_.policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Policy* PROTOBUF_NULLABLE DeletePolicyRequest::unsafe_arena_release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePolicyRequest.policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* temp = _impl_.policy_;
  _impl_.policy_ = nullptr;
  return temp;
}
inline ::apipb::Policy* PROTOBUF_NONNULL DeletePolicyRequest::_internal_mutable_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Policy>(GetArena());
    _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(p);
  }
  return _impl_.policy_;
}
inline ::apipb::Policy* PROTOBUF_NONNULL DeletePolicyRequest::mutable_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* _msg = _internal_mutable_policy();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePolicyRequest.policy)
  return _msg;
}
inline void DeletePolicyRequest::set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePolicyRequest.policy)
}

// bool preserve_statements = 2;
inline void DeletePolicyRequest::clear_preserve_statements() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preserve_statements_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool DeletePolicyRequest::preserve_statements() const {
  // @@protoc_insertion_point(field_get:apipb.DeletePolicyRequest.preserve_statements)
  return _internal_preserve_statements();
}
inline void DeletePolicyRequest::set_preserve_statements(bool value) {
  _internal_set_preserve_statements(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeletePolicyRequest.preserve_statements)
}
inline bool DeletePolicyRequest::_internal_preserve_statements() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.preserve_statements_;
}
inline void DeletePolicyRequest::_internal_set_preserve_statements(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preserve_statements_ = value;
}

// bool all = 3;
inline void DeletePolicyRequest::clear_all() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool DeletePolicyRequest::all() const {
  // @@protoc_insertion_point(field_get:apipb.DeletePolicyRequest.all)
  return _internal_all();
}
inline void DeletePolicyRequest::set_all(bool value) {
  _internal_set_all(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.DeletePolicyRequest.all)
}
inline bool DeletePolicyRequest::_internal_all() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.all_;
}
inline void DeletePolicyRequest::_internal_set_all(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = value;
}

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

// ListPolicyRequest

// string name = 1;
inline void ListPolicyRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListPolicyRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPolicyRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListPolicyRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListPolicyRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListPolicyRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListPolicyRequest.name)
  return _s;
}
inline const ::std::string& ListPolicyRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListPolicyRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListPolicyRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListPolicyRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPolicyRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListPolicyRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPolicyRequest.name)
}

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

// ListPolicyResponse

// .apipb.Policy policy = 1;
inline bool ListPolicyResponse::has_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.policy_ != nullptr);
  return value;
}
inline void ListPolicyResponse::clear_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ != nullptr) _impl_.policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Policy& ListPolicyResponse::_internal_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Policy* p = _impl_.policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Policy>(&::apipb::Policy_globals_);
}
inline const ::apipb::Policy& ListPolicyResponse::policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPolicyResponse.policy)
  return _internal_policy();
}
inline void ListPolicyResponse::unsafe_arena_set_allocated_policy(
    ::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }
  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPolicyResponse.policy)
}
inline ::apipb::Policy* PROTOBUF_NULLABLE ListPolicyResponse::release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* released = _impl_.policy_;
  _impl_.policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Policy* PROTOBUF_NULLABLE ListPolicyResponse::unsafe_arena_release_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPolicyResponse.policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* temp = _impl_.policy_;
  _impl_.policy_ = nullptr;
  return temp;
}
inline ::apipb::Policy* PROTOBUF_NONNULL ListPolicyResponse::_internal_mutable_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Policy>(GetArena());
    _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(p);
  }
  return _impl_.policy_;
}
inline ::apipb::Policy* PROTOBUF_NONNULL ListPolicyResponse::mutable_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Policy* _msg = _internal_mutable_policy();
  // @@protoc_insertion_point(field_mutable:apipb.ListPolicyResponse.policy)
  return _msg;
}
inline void ListPolicyResponse::set_allocated_policy(::apipb::Policy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.policy_ = reinterpret_cast<::apipb::Policy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPolicyResponse.policy)
}

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

// SetPoliciesRequest

// repeated .apipb.DefinedSet defined_sets = 1;
inline int SetPoliciesRequest::_internal_defined_sets_size() const {
  return _internal_defined_sets().size();
}
inline int SetPoliciesRequest::defined_sets_size() const {
  return _internal_defined_sets_size();
}
inline void SetPoliciesRequest::clear_defined_sets() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_sets_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DefinedSet& SetPoliciesRequest::defined_sets(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.SetPoliciesRequest.defined_sets)
  return _internal_defined_sets().Get(index);
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL SetPoliciesRequest::mutable_defined_sets(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.SetPoliciesRequest.defined_sets)
  return _internal_mutable_defined_sets()->Mutable(index);
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL SetPoliciesRequest::add_defined_sets()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::DefinedSet* _add =
      _internal_mutable_defined_sets()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.SetPoliciesRequest.defined_sets)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>& SetPoliciesRequest::defined_sets() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.SetPoliciesRequest.defined_sets)
  return _internal_defined_sets();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
SetPoliciesRequest::mutable_defined_sets() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.SetPoliciesRequest.defined_sets)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_defined_sets();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>&
SetPoliciesRequest::_internal_defined_sets() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.defined_sets_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
SetPoliciesRequest::_internal_mutable_defined_sets() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.defined_sets_;
}

// repeated .apipb.Policy policies = 2;
inline int SetPoliciesRequest::_internal_policies_size() const {
  return _internal_policies().size();
}
inline int SetPoliciesRequest::policies_size() const {
  return _internal_policies_size();
}
inline void SetPoliciesRequest::clear_policies() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.policies_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Policy& SetPoliciesRequest::policies(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.SetPoliciesRequest.policies)
  return _internal_policies().Get(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL SetPoliciesRequest::mutable_policies(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.SetPoliciesRequest.policies)
  return _internal_mutable_policies()->Mutable(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL SetPoliciesRequest::add_policies()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Policy* _add =
      _internal_mutable_policies()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.SetPoliciesRequest.policies)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& SetPoliciesRequest::policies() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.SetPoliciesRequest.policies)
  return _internal_policies();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
SetPoliciesRequest::mutable_policies() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.SetPoliciesRequest.policies)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_policies();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
SetPoliciesRequest::_internal_policies() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.policies_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
SetPoliciesRequest::_internal_mutable_policies() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.policies_;
}

// repeated .apipb.PolicyAssignment assignments = 3;
inline int SetPoliciesRequest::_internal_assignments_size() const {
  return _internal_assignments().size();
}
inline int SetPoliciesRequest::assignments_size() const {
  return _internal_assignments_size();
}
inline void SetPoliciesRequest::clear_assignments() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.assignments_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::PolicyAssignment& SetPoliciesRequest::assignments(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.SetPoliciesRequest.assignments)
  return _internal_assignments().Get(index);
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL SetPoliciesRequest::mutable_assignments(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.SetPoliciesRequest.assignments)
  return _internal_mutable_assignments()->Mutable(index);
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL SetPoliciesRequest::add_assignments()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::PolicyAssignment* _add =
      _internal_mutable_assignments()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:apipb.SetPoliciesRequest.assignments)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>& SetPoliciesRequest::assignments() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.SetPoliciesRequest.assignments)
  return _internal_assignments();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>* PROTOBUF_NONNULL
SetPoliciesRequest::mutable_assignments() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:apipb.SetPoliciesRequest.assignments)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_assignments();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>&
SetPoliciesRequest::_internal_assignments() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.assignments_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::PolicyAssignment>* PROTOBUF_NONNULL
SetPoliciesRequest::_internal_mutable_assignments() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.assignments_;
}

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

// AddDefinedSetRequest

// .apipb.DefinedSet defined_set = 1;
inline bool AddDefinedSetRequest::has_defined_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.defined_set_ != nullptr);
  return value;
}
inline void AddDefinedSetRequest::clear_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ != nullptr) _impl_.defined_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DefinedSet& AddDefinedSetRequest::_internal_defined_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DefinedSet* p = _impl_.defined_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DefinedSet>(&::apipb::DefinedSet_globals_);
}
inline const ::apipb::DefinedSet& AddDefinedSetRequest::defined_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddDefinedSetRequest.defined_set)
  return _internal_defined_set();
}
inline void AddDefinedSetRequest::unsafe_arena_set_allocated_defined_set(
    ::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }
  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddDefinedSetRequest.defined_set)
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE AddDefinedSetRequest::release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* released = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE AddDefinedSetRequest::unsafe_arena_release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddDefinedSetRequest.defined_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* temp = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  return temp;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL AddDefinedSetRequest::_internal_mutable_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DefinedSet>(GetArena());
    _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(p);
  }
  return _impl_.defined_set_;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL AddDefinedSetRequest::mutable_defined_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* _msg = _internal_mutable_defined_set();
  // @@protoc_insertion_point(field_mutable:apipb.AddDefinedSetRequest.defined_set)
  return _msg;
}
inline void AddDefinedSetRequest::set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddDefinedSetRequest.defined_set)
}

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

// DeleteDefinedSetRequest

// .apipb.DefinedSet defined_set = 1;
inline bool DeleteDefinedSetRequest::has_defined_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.defined_set_ != nullptr);
  return value;
}
inline void DeleteDefinedSetRequest::clear_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ != nullptr) _impl_.defined_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DefinedSet& DeleteDefinedSetRequest::_internal_defined_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DefinedSet* p = _impl_.defined_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DefinedSet>(&::apipb::DefinedSet_globals_);
}
inline const ::apipb::DefinedSet& DeleteDefinedSetRequest::defined_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteDefinedSetRequest.defined_set)
  return _internal_defined_set();
}
inline void DeleteDefinedSetRequest::unsafe_arena_set_allocated_defined_set(
    ::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }
  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeleteDefinedSetRequest.defined_set)
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE DeleteDefinedSetRequest::release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* released = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE DeleteDefinedSetRequest::unsafe_arena_release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteDefinedSetRequest.defined_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* temp = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  return temp;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL DeleteDefinedSetRequest::_internal_mutable_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DefinedSet>(GetArena());
    _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(p);
  }
  return _impl_.defined_set_;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL DeleteDefinedSetRequest::mutable_defined_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* _msg = _internal_mutable_defined_set();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteDefinedSetRequest.defined_set)
  return _msg;
}
inline void DeleteDefinedSetRequest::set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteDefinedSetRequest.defined_set)
}

// bool all = 2;
inline void DeleteDefinedSetRequest::clear_all() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool DeleteDefinedSetRequest::all() const {
  // @@protoc_insertion_point(field_get:apipb.DeleteDefinedSetRequest.all)
  return _internal_all();
}
inline void DeleteDefinedSetRequest::set_all(bool value) {
  _internal_set_all(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeleteDefinedSetRequest.all)
}
inline bool DeleteDefinedSetRequest::_internal_all() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.all_;
}
inline void DeleteDefinedSetRequest::_internal_set_all(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = value;
}

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

// ListDefinedSetRequest

// .apipb.DefinedType defined_type = 1;
inline void ListDefinedSetRequest::clear_defined_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::DefinedType ListDefinedSetRequest::defined_type() const {
  // @@protoc_insertion_point(field_get:apipb.ListDefinedSetRequest.defined_type)
  return _internal_defined_type();
}
inline void ListDefinedSetRequest::set_defined_type(::apipb::DefinedType value) {
  _internal_set_defined_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.ListDefinedSetRequest.defined_type)
}
inline ::apipb::DefinedType ListDefinedSetRequest::_internal_defined_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::DefinedType>(_impl_.defined_type_);
}
inline void ListDefinedSetRequest::_internal_set_defined_type(::apipb::DefinedType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_type_ = value;
}

// string name = 2;
inline void ListDefinedSetRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListDefinedSetRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListDefinedSetRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListDefinedSetRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListDefinedSetRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListDefinedSetRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListDefinedSetRequest.name)
  return _s;
}
inline const ::std::string& ListDefinedSetRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListDefinedSetRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListDefinedSetRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListDefinedSetRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListDefinedSetRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListDefinedSetRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListDefinedSetRequest.name)
}

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

// ListDefinedSetResponse

// .apipb.DefinedSet defined_set = 1;
inline bool ListDefinedSetResponse::has_defined_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.defined_set_ != nullptr);
  return value;
}
inline void ListDefinedSetResponse::clear_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ != nullptr) _impl_.defined_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DefinedSet& ListDefinedSetResponse::_internal_defined_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DefinedSet* p = _impl_.defined_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DefinedSet>(&::apipb::DefinedSet_globals_);
}
inline const ::apipb::DefinedSet& ListDefinedSetResponse::defined_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListDefinedSetResponse.defined_set)
  return _internal_defined_set();
}
inline void ListDefinedSetResponse::unsafe_arena_set_allocated_defined_set(
    ::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }
  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListDefinedSetResponse.defined_set)
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE ListDefinedSetResponse::release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* released = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DefinedSet* PROTOBUF_NULLABLE ListDefinedSetResponse::unsafe_arena_release_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListDefinedSetResponse.defined_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* temp = _impl_.defined_set_;
  _impl_.defined_set_ = nullptr;
  return temp;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL ListDefinedSetResponse::_internal_mutable_defined_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.defined_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DefinedSet>(GetArena());
    _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(p);
  }
  return _impl_.defined_set_;
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL ListDefinedSetResponse::mutable_defined_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::DefinedSet* _msg = _internal_mutable_defined_set();
  // @@protoc_insertion_point(field_mutable:apipb.ListDefinedSetResponse.defined_set)
  return _msg;
}
inline void ListDefinedSetResponse::set_allocated_defined_set(::apipb::DefinedSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.defined_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.defined_set_ = reinterpret_cast<::apipb::DefinedSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListDefinedSetResponse.defined_set)
}

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

// AddStatementRequest

// .apipb.Statement statement = 1;
inline bool AddStatementRequest::has_statement() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.statement_ != nullptr);
  return value;
}
inline void AddStatementRequest::clear_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ != nullptr) _impl_.statement_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Statement& AddStatementRequest::_internal_statement() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Statement* p = _impl_.statement_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Statement>(&::apipb::Statement_globals_);
}
inline const ::apipb::Statement& AddStatementRequest::statement() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddStatementRequest.statement)
  return _internal_statement();
}
inline void AddStatementRequest::unsafe_arena_set_allocated_statement(
    ::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }
  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddStatementRequest.statement)
}
inline ::apipb::Statement* PROTOBUF_NULLABLE AddStatementRequest::release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* released = _impl_.statement_;
  _impl_.statement_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Statement* PROTOBUF_NULLABLE AddStatementRequest::unsafe_arena_release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddStatementRequest.statement)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* temp = _impl_.statement_;
  _impl_.statement_ = nullptr;
  return temp;
}
inline ::apipb::Statement* PROTOBUF_NONNULL AddStatementRequest::_internal_mutable_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Statement>(GetArena());
    _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(p);
  }
  return _impl_.statement_;
}
inline ::apipb::Statement* PROTOBUF_NONNULL AddStatementRequest::mutable_statement()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* _msg = _internal_mutable_statement();
  // @@protoc_insertion_point(field_mutable:apipb.AddStatementRequest.statement)
  return _msg;
}
inline void AddStatementRequest::set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddStatementRequest.statement)
}

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

// DeleteStatementRequest

// .apipb.Statement statement = 1;
inline bool DeleteStatementRequest::has_statement() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.statement_ != nullptr);
  return value;
}
inline void DeleteStatementRequest::clear_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ != nullptr) _impl_.statement_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Statement& DeleteStatementRequest::_internal_statement() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Statement* p = _impl_.statement_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Statement>(&::apipb::Statement_globals_);
}
inline const ::apipb::Statement& DeleteStatementRequest::statement() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteStatementRequest.statement)
  return _internal_statement();
}
inline void DeleteStatementRequest::unsafe_arena_set_allocated_statement(
    ::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }
  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeleteStatementRequest.statement)
}
inline ::apipb::Statement* PROTOBUF_NULLABLE DeleteStatementRequest::release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* released = _impl_.statement_;
  _impl_.statement_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Statement* PROTOBUF_NULLABLE DeleteStatementRequest::unsafe_arena_release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteStatementRequest.statement)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* temp = _impl_.statement_;
  _impl_.statement_ = nullptr;
  return temp;
}
inline ::apipb::Statement* PROTOBUF_NONNULL DeleteStatementRequest::_internal_mutable_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Statement>(GetArena());
    _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(p);
  }
  return _impl_.statement_;
}
inline ::apipb::Statement* PROTOBUF_NONNULL DeleteStatementRequest::mutable_statement()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* _msg = _internal_mutable_statement();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteStatementRequest.statement)
  return _msg;
}
inline void DeleteStatementRequest::set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteStatementRequest.statement)
}

// bool all = 2;
inline void DeleteStatementRequest::clear_all() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool DeleteStatementRequest::all() const {
  // @@protoc_insertion_point(field_get:apipb.DeleteStatementRequest.all)
  return _internal_all();
}
inline void DeleteStatementRequest::set_all(bool value) {
  _internal_set_all(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeleteStatementRequest.all)
}
inline bool DeleteStatementRequest::_internal_all() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.all_;
}
inline void DeleteStatementRequest::_internal_set_all(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = value;
}

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

// ListStatementRequest

// string name = 1;
inline void ListStatementRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListStatementRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListStatementRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListStatementRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListStatementRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListStatementRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListStatementRequest.name)
  return _s;
}
inline const ::std::string& ListStatementRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListStatementRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListStatementRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListStatementRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListStatementRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListStatementRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListStatementRequest.name)
}

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

// ListStatementResponse

// .apipb.Statement statement = 1;
inline bool ListStatementResponse::has_statement() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.statement_ != nullptr);
  return value;
}
inline void ListStatementResponse::clear_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ != nullptr) _impl_.statement_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Statement& ListStatementResponse::_internal_statement() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Statement* p = _impl_.statement_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Statement>(&::apipb::Statement_globals_);
}
inline const ::apipb::Statement& ListStatementResponse::statement() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListStatementResponse.statement)
  return _internal_statement();
}
inline void ListStatementResponse::unsafe_arena_set_allocated_statement(
    ::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }
  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListStatementResponse.statement)
}
inline ::apipb::Statement* PROTOBUF_NULLABLE ListStatementResponse::release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* released = _impl_.statement_;
  _impl_.statement_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Statement* PROTOBUF_NULLABLE ListStatementResponse::unsafe_arena_release_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListStatementResponse.statement)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* temp = _impl_.statement_;
  _impl_.statement_ = nullptr;
  return temp;
}
inline ::apipb::Statement* PROTOBUF_NONNULL ListStatementResponse::_internal_mutable_statement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statement_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Statement>(GetArena());
    _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(p);
  }
  return _impl_.statement_;
}
inline ::apipb::Statement* PROTOBUF_NONNULL ListStatementResponse::mutable_statement()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Statement* _msg = _internal_mutable_statement();
  // @@protoc_insertion_point(field_mutable:apipb.ListStatementResponse.statement)
  return _msg;
}
inline void ListStatementResponse::set_allocated_statement(::apipb::Statement* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statement_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.statement_ = reinterpret_cast<::apipb::Statement*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListStatementResponse.statement)
}

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

// AddPolicyAssignmentRequest

// .apipb.PolicyAssignment assignment = 1;
inline bool AddPolicyAssignmentRequest::has_assignment() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.assignment_ != nullptr);
  return value;
}
inline void AddPolicyAssignmentRequest::clear_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ != nullptr) _impl_.assignment_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PolicyAssignment& AddPolicyAssignmentRequest::_internal_assignment() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.assignment_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& AddPolicyAssignmentRequest::assignment() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPolicyAssignmentRequest.assignment)
  return _internal_assignment();
}
inline void AddPolicyAssignmentRequest::unsafe_arena_set_allocated_assignment(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }
  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPolicyAssignmentRequest.assignment)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE AddPolicyAssignmentRequest::release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* released = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE AddPolicyAssignmentRequest::unsafe_arena_release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPolicyAssignmentRequest.assignment)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* temp = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL AddPolicyAssignmentRequest::_internal_mutable_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.assignment_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL AddPolicyAssignmentRequest::mutable_assignment()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_assignment();
  // @@protoc_insertion_point(field_mutable:apipb.AddPolicyAssignmentRequest.assignment)
  return _msg;
}
inline void AddPolicyAssignmentRequest::set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPolicyAssignmentRequest.assignment)
}

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

// DeletePolicyAssignmentRequest

// .apipb.PolicyAssignment assignment = 1;
inline bool DeletePolicyAssignmentRequest::has_assignment() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.assignment_ != nullptr);
  return value;
}
inline void DeletePolicyAssignmentRequest::clear_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ != nullptr) _impl_.assignment_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PolicyAssignment& DeletePolicyAssignmentRequest::_internal_assignment() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.assignment_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& DeletePolicyAssignmentRequest::assignment() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeletePolicyAssignmentRequest.assignment)
  return _internal_assignment();
}
inline void DeletePolicyAssignmentRequest::unsafe_arena_set_allocated_assignment(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }
  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.DeletePolicyAssignmentRequest.assignment)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE DeletePolicyAssignmentRequest::release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* released = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE DeletePolicyAssignmentRequest::unsafe_arena_release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeletePolicyAssignmentRequest.assignment)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* temp = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL DeletePolicyAssignmentRequest::_internal_mutable_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.assignment_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL DeletePolicyAssignmentRequest::mutable_assignment()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_assignment();
  // @@protoc_insertion_point(field_mutable:apipb.DeletePolicyAssignmentRequest.assignment)
  return _msg;
}
inline void DeletePolicyAssignmentRequest::set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.DeletePolicyAssignmentRequest.assignment)
}

// bool all = 2;
inline void DeletePolicyAssignmentRequest::clear_all() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool DeletePolicyAssignmentRequest::all() const {
  // @@protoc_insertion_point(field_get:apipb.DeletePolicyAssignmentRequest.all)
  return _internal_all();
}
inline void DeletePolicyAssignmentRequest::set_all(bool value) {
  _internal_set_all(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeletePolicyAssignmentRequest.all)
}
inline bool DeletePolicyAssignmentRequest::_internal_all() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.all_;
}
inline void DeletePolicyAssignmentRequest::_internal_set_all(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.all_ = value;
}

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

// ListPolicyAssignmentRequest

// string name = 1;
inline void ListPolicyAssignmentRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListPolicyAssignmentRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPolicyAssignmentRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListPolicyAssignmentRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListPolicyAssignmentRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL ListPolicyAssignmentRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.ListPolicyAssignmentRequest.name)
  return _s;
}
inline const ::std::string& ListPolicyAssignmentRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ListPolicyAssignmentRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListPolicyAssignmentRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListPolicyAssignmentRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPolicyAssignmentRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ListPolicyAssignmentRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPolicyAssignmentRequest.name)
}

// .apipb.PolicyDirection direction = 2;
inline void ListPolicyAssignmentRequest::clear_direction() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::PolicyDirection ListPolicyAssignmentRequest::direction() const {
  // @@protoc_insertion_point(field_get:apipb.ListPolicyAssignmentRequest.direction)
  return _internal_direction();
}
inline void ListPolicyAssignmentRequest::set_direction(::apipb::PolicyDirection value) {
  _internal_set_direction(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.ListPolicyAssignmentRequest.direction)
}
inline ::apipb::PolicyDirection ListPolicyAssignmentRequest::_internal_direction() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PolicyDirection>(_impl_.direction_);
}
inline void ListPolicyAssignmentRequest::_internal_set_direction(::apipb::PolicyDirection value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = value;
}

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

// ListPolicyAssignmentResponse

// .apipb.PolicyAssignment assignment = 1;
inline bool ListPolicyAssignmentResponse::has_assignment() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.assignment_ != nullptr);
  return value;
}
inline void ListPolicyAssignmentResponse::clear_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ != nullptr) _impl_.assignment_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PolicyAssignment& ListPolicyAssignmentResponse::_internal_assignment() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.assignment_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& ListPolicyAssignmentResponse::assignment() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListPolicyAssignmentResponse.assignment)
  return _internal_assignment();
}
inline void ListPolicyAssignmentResponse::unsafe_arena_set_allocated_assignment(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }
  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListPolicyAssignmentResponse.assignment)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ListPolicyAssignmentResponse::release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* released = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ListPolicyAssignmentResponse::unsafe_arena_release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListPolicyAssignmentResponse.assignment)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* temp = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ListPolicyAssignmentResponse::_internal_mutable_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.assignment_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ListPolicyAssignmentResponse::mutable_assignment()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_assignment();
  // @@protoc_insertion_point(field_mutable:apipb.ListPolicyAssignmentResponse.assignment)
  return _msg;
}
inline void ListPolicyAssignmentResponse::set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListPolicyAssignmentResponse.assignment)
}

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

// SetPolicyAssignmentRequest

// .apipb.PolicyAssignment assignment = 1;
inline bool SetPolicyAssignmentRequest::has_assignment() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.assignment_ != nullptr);
  return value;
}
inline void SetPolicyAssignmentRequest::clear_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ != nullptr) _impl_.assignment_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PolicyAssignment& SetPolicyAssignmentRequest::_internal_assignment() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.assignment_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& SetPolicyAssignmentRequest::assignment() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.SetPolicyAssignmentRequest.assignment)
  return _internal_assignment();
}
inline void SetPolicyAssignmentRequest::unsafe_arena_set_allocated_assignment(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }
  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.SetPolicyAssignmentRequest.assignment)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE SetPolicyAssignmentRequest::release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* released = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE SetPolicyAssignmentRequest::unsafe_arena_release_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.SetPolicyAssignmentRequest.assignment)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* temp = _impl_.assignment_;
  _impl_.assignment_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL SetPolicyAssignmentRequest::_internal_mutable_assignment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.assignment_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.assignment_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL SetPolicyAssignmentRequest::mutable_assignment()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_assignment();
  // @@protoc_insertion_point(field_mutable:apipb.SetPolicyAssignmentRequest.assignment)
  return _msg;
}
inline void SetPolicyAssignmentRequest::set_allocated_assignment(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.assignment_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.assignment_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.SetPolicyAssignmentRequest.assignment)
}

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

// AddRpkiRequest

// string address = 1;
inline void AddRpkiRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& AddRpkiRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddRpkiRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddRpkiRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddRpkiRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL AddRpkiRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.AddRpkiRequest.address)
  return _s;
}
inline const ::std::string& AddRpkiRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void AddRpkiRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddRpkiRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddRpkiRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddRpkiRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void AddRpkiRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddRpkiRequest.address)
}

// uint32 port = 2;
inline void AddRpkiRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t AddRpkiRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.AddRpkiRequest.port)
  return _internal_port();
}
inline void AddRpkiRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.AddRpkiRequest.port)
}
inline ::uint32_t AddRpkiRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void AddRpkiRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

// int64 lifetime = 3;
inline void AddRpkiRequest::clear_lifetime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lifetime_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t AddRpkiRequest::lifetime() const {
  // @@protoc_insertion_point(field_get:apipb.AddRpkiRequest.lifetime)
  return _internal_lifetime();
}
inline void AddRpkiRequest::set_lifetime(::int64_t value) {
  _internal_set_lifetime(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AddRpkiRequest.lifetime)
}
inline ::int64_t AddRpkiRequest::_internal_lifetime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.lifetime_;
}
inline void AddRpkiRequest::_internal_set_lifetime(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lifetime_ = value;
}

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

// DeleteRpkiRequest

// string address = 1;
inline void DeleteRpkiRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteRpkiRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteRpkiRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteRpkiRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeleteRpkiRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL DeleteRpkiRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteRpkiRequest.address)
  return _s;
}
inline const ::std::string& DeleteRpkiRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void DeleteRpkiRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteRpkiRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteRpkiRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteRpkiRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void DeleteRpkiRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteRpkiRequest.address)
}

// uint32 port = 2;
inline void DeleteRpkiRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t DeleteRpkiRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.DeleteRpkiRequest.port)
  return _internal_port();
}
inline void DeleteRpkiRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeleteRpkiRequest.port)
}
inline ::uint32_t DeleteRpkiRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void DeleteRpkiRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

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

// ListRpkiRequest

// .apipb.Family family = 1;
inline bool ListRpkiRequest::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void ListRpkiRequest::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Family& ListRpkiRequest::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& ListRpkiRequest::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListRpkiRequest.family)
  return _internal_family();
}
inline void ListRpkiRequest::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListRpkiRequest.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListRpkiRequest::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListRpkiRequest::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListRpkiRequest.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListRpkiRequest::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListRpkiRequest::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.ListRpkiRequest.family)
  return _msg;
}
inline void ListRpkiRequest::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListRpkiRequest.family)
}

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

// ListRpkiResponse

// .apipb.Rpki server = 1;
inline bool ListRpkiResponse::has_server() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.server_ != nullptr);
  return value;
}
inline void ListRpkiResponse::clear_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.server_ != nullptr) _impl_.server_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Rpki& ListRpkiResponse::_internal_server() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Rpki* p = _impl_.server_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Rpki>(&::apipb::Rpki_globals_);
}
inline const ::apipb::Rpki& ListRpkiResponse::server() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListRpkiResponse.server)
  return _internal_server();
}
inline void ListRpkiResponse::unsafe_arena_set_allocated_server(
    ::apipb::Rpki* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.server_);
  }
  _impl_.server_ = reinterpret_cast<::apipb::Rpki*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListRpkiResponse.server)
}
inline ::apipb::Rpki* PROTOBUF_NULLABLE ListRpkiResponse::release_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Rpki* released = _impl_.server_;
  _impl_.server_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Rpki* PROTOBUF_NULLABLE ListRpkiResponse::unsafe_arena_release_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListRpkiResponse.server)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Rpki* temp = _impl_.server_;
  _impl_.server_ = nullptr;
  return temp;
}
inline ::apipb::Rpki* PROTOBUF_NONNULL ListRpkiResponse::_internal_mutable_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.server_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Rpki>(GetArena());
    _impl_.server_ = reinterpret_cast<::apipb::Rpki*>(p);
  }
  return _impl_.server_;
}
inline ::apipb::Rpki* PROTOBUF_NONNULL ListRpkiResponse::mutable_server()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Rpki* _msg = _internal_mutable_server();
  // @@protoc_insertion_point(field_mutable:apipb.ListRpkiResponse.server)
  return _msg;
}
inline void ListRpkiResponse::set_allocated_server(::apipb::Rpki* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.server_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.server_ = reinterpret_cast<::apipb::Rpki*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListRpkiResponse.server)
}

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

// EnableRpkiRequest

// string address = 1;
inline void EnableRpkiRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& EnableRpkiRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnableRpkiRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnableRpkiRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.EnableRpkiRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL EnableRpkiRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.EnableRpkiRequest.address)
  return _s;
}
inline const ::std::string& EnableRpkiRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void EnableRpkiRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnableRpkiRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnableRpkiRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.EnableRpkiRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void EnableRpkiRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.EnableRpkiRequest.address)
}

// uint32 port = 2;
inline void EnableRpkiRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t EnableRpkiRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.EnableRpkiRequest.port)
  return _internal_port();
}
inline void EnableRpkiRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.EnableRpkiRequest.port)
}
inline ::uint32_t EnableRpkiRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void EnableRpkiRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

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

// DisableRpkiRequest

// string address = 1;
inline void DisableRpkiRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DisableRpkiRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DisableRpkiRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DisableRpkiRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DisableRpkiRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL DisableRpkiRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.DisableRpkiRequest.address)
  return _s;
}
inline const ::std::string& DisableRpkiRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void DisableRpkiRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DisableRpkiRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DisableRpkiRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DisableRpkiRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void DisableRpkiRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DisableRpkiRequest.address)
}

// uint32 port = 2;
inline void DisableRpkiRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t DisableRpkiRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.DisableRpkiRequest.port)
  return _internal_port();
}
inline void DisableRpkiRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DisableRpkiRequest.port)
}
inline ::uint32_t DisableRpkiRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void DisableRpkiRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

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

// ResetRpkiRequest

// string address = 1;
inline void ResetRpkiRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ResetRpkiRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ResetRpkiRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ResetRpkiRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ResetRpkiRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL ResetRpkiRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.ResetRpkiRequest.address)
  return _s;
}
inline const ::std::string& ResetRpkiRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void ResetRpkiRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ResetRpkiRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ResetRpkiRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ResetRpkiRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void ResetRpkiRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ResetRpkiRequest.address)
}

// uint32 port = 2;
inline void ResetRpkiRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t ResetRpkiRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.ResetRpkiRequest.port)
  return _internal_port();
}
inline void ResetRpkiRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.ResetRpkiRequest.port)
}
inline ::uint32_t ResetRpkiRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void ResetRpkiRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

// bool soft = 3;
inline void ResetRpkiRequest::clear_soft() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.soft_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool ResetRpkiRequest::soft() const {
  // @@protoc_insertion_point(field_get:apipb.ResetRpkiRequest.soft)
  return _internal_soft();
}
inline void ResetRpkiRequest::set_soft(bool value) {
  _internal_set_soft(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.ResetRpkiRequest.soft)
}
inline bool ResetRpkiRequest::_internal_soft() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.soft_;
}
inline void ResetRpkiRequest::_internal_set_soft(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.soft_ = value;
}

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

// ListRpkiTableRequest

// .apipb.Family family = 1;
inline bool ListRpkiTableRequest::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void ListRpkiTableRequest::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Family& ListRpkiTableRequest::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& ListRpkiTableRequest::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListRpkiTableRequest.family)
  return _internal_family();
}
inline void ListRpkiTableRequest::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListRpkiTableRequest.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListRpkiTableRequest::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE ListRpkiTableRequest::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListRpkiTableRequest.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListRpkiTableRequest::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL ListRpkiTableRequest::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.ListRpkiTableRequest.family)
  return _msg;
}
inline void ListRpkiTableRequest::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListRpkiTableRequest.family)
}

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

// ListRpkiTableResponse

// .apipb.Roa roa = 1;
inline bool ListRpkiTableResponse::has_roa() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.roa_ != nullptr);
  return value;
}
inline void ListRpkiTableResponse::clear_roa() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.roa_ != nullptr) _impl_.roa_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Roa& ListRpkiTableResponse::_internal_roa() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Roa* p = _impl_.roa_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Roa>(&::apipb::Roa_globals_);
}
inline const ::apipb::Roa& ListRpkiTableResponse::roa() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListRpkiTableResponse.roa)
  return _internal_roa();
}
inline void ListRpkiTableResponse::unsafe_arena_set_allocated_roa(
    ::apipb::Roa* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.roa_);
  }
  _impl_.roa_ = reinterpret_cast<::apipb::Roa*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListRpkiTableResponse.roa)
}
inline ::apipb::Roa* PROTOBUF_NULLABLE ListRpkiTableResponse::release_roa() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Roa* released = _impl_.roa_;
  _impl_.roa_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Roa* PROTOBUF_NULLABLE ListRpkiTableResponse::unsafe_arena_release_roa() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListRpkiTableResponse.roa)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Roa* temp = _impl_.roa_;
  _impl_.roa_ = nullptr;
  return temp;
}
inline ::apipb::Roa* PROTOBUF_NONNULL ListRpkiTableResponse::_internal_mutable_roa() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.roa_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Roa>(GetArena());
    _impl_.roa_ = reinterpret_cast<::apipb::Roa*>(p);
  }
  return _impl_.roa_;
}
inline ::apipb::Roa* PROTOBUF_NONNULL ListRpkiTableResponse::mutable_roa()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Roa* _msg = _internal_mutable_roa();
  // @@protoc_insertion_point(field_mutable:apipb.ListRpkiTableResponse.roa)
  return _msg;
}
inline void ListRpkiTableResponse::set_allocated_roa(::apipb::Roa* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.roa_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.roa_ = reinterpret_cast<::apipb::Roa*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListRpkiTableResponse.roa)
}

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

// EnableZebraRequest

// string url = 1;
inline void EnableZebraRequest::clear_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& EnableZebraRequest::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnableZebraRequest::set_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.url)
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::mutable_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:apipb.EnableZebraRequest.url)
  return _s;
}
inline const ::std::string& EnableZebraRequest::_internal_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.url_.Get();
}
inline void EnableZebraRequest::_internal_set_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::_internal_mutable_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnableZebraRequest::release_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.EnableZebraRequest.url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.url_.Set("", GetArena());
  }
  return released;
}
inline void EnableZebraRequest::set_allocated_url(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.url_.IsDefault()) {
    _impl_.url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.EnableZebraRequest.url)
}

// repeated string route_types = 2;
inline int EnableZebraRequest::_internal_route_types_size() const {
  return _internal_route_types().size();
}
inline int EnableZebraRequest::route_types_size() const {
  return _internal_route_types_size();
}
inline void EnableZebraRequest::clear_route_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::add_route_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_route_types()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:apipb.EnableZebraRequest.route_types)
  return _s;
}
inline const ::std::string& EnableZebraRequest::route_types(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.route_types)
  return _internal_route_types().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::mutable_route_types(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.EnableZebraRequest.route_types)
  return _internal_mutable_route_types()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void EnableZebraRequest::set_route_types(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_route_types()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.route_types)
}
template <typename Arg_, typename... Args_>
inline void EnableZebraRequest::add_route_types(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_route_types(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.EnableZebraRequest.route_types)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& EnableZebraRequest::route_types()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.EnableZebraRequest.route_types)
  return _internal_route_types();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
EnableZebraRequest::mutable_route_types() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.EnableZebraRequest.route_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_route_types();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
EnableZebraRequest::_internal_route_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_types_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
EnableZebraRequest::_internal_mutable_route_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.route_types_;
}

// uint32 version = 3;
inline void EnableZebraRequest::clear_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t EnableZebraRequest::version() const {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.version)
  return _internal_version();
}
inline void EnableZebraRequest::set_version(::uint32_t value) {
  _internal_set_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.version)
}
inline ::uint32_t EnableZebraRequest::_internal_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.version_;
}
inline void EnableZebraRequest::_internal_set_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_ = value;
}

// bool nexthop_trigger_enable = 4;
inline void EnableZebraRequest::clear_nexthop_trigger_enable() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nexthop_trigger_enable_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool EnableZebraRequest::nexthop_trigger_enable() const {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.nexthop_trigger_enable)
  return _internal_nexthop_trigger_enable();
}
inline void EnableZebraRequest::set_nexthop_trigger_enable(bool value) {
  _internal_set_nexthop_trigger_enable(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.nexthop_trigger_enable)
}
inline bool EnableZebraRequest::_internal_nexthop_trigger_enable() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nexthop_trigger_enable_;
}
inline void EnableZebraRequest::_internal_set_nexthop_trigger_enable(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nexthop_trigger_enable_ = value;
}

// uint32 nexthop_trigger_delay = 5;
inline void EnableZebraRequest::clear_nexthop_trigger_delay() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nexthop_trigger_delay_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t EnableZebraRequest::nexthop_trigger_delay() const {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.nexthop_trigger_delay)
  return _internal_nexthop_trigger_delay();
}
inline void EnableZebraRequest::set_nexthop_trigger_delay(::uint32_t value) {
  _internal_set_nexthop_trigger_delay(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.nexthop_trigger_delay)
}
inline ::uint32_t EnableZebraRequest::_internal_nexthop_trigger_delay() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nexthop_trigger_delay_;
}
inline void EnableZebraRequest::_internal_set_nexthop_trigger_delay(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nexthop_trigger_delay_ = value;
}

// uint32 mpls_label_range_size = 6;
inline void EnableZebraRequest::clear_mpls_label_range_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mpls_label_range_size_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t EnableZebraRequest::mpls_label_range_size() const {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.mpls_label_range_size)
  return _internal_mpls_label_range_size();
}
inline void EnableZebraRequest::set_mpls_label_range_size(::uint32_t value) {
  _internal_set_mpls_label_range_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.mpls_label_range_size)
}
inline ::uint32_t EnableZebraRequest::_internal_mpls_label_range_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mpls_label_range_size_;
}
inline void EnableZebraRequest::_internal_set_mpls_label_range_size(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mpls_label_range_size_ = value;
}

// string software_name = 7;
inline void EnableZebraRequest::clear_software_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.software_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& EnableZebraRequest::software_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnableZebraRequest.software_name)
  return _internal_software_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnableZebraRequest::set_software_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.software_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.EnableZebraRequest.software_name)
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::mutable_software_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_software_name();
  // @@protoc_insertion_point(field_mutable:apipb.EnableZebraRequest.software_name)
  return _s;
}
inline const ::std::string& EnableZebraRequest::_internal_software_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.software_name_.Get();
}
inline void EnableZebraRequest::_internal_set_software_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.software_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnableZebraRequest::_internal_mutable_software_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.software_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnableZebraRequest::release_software_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.EnableZebraRequest.software_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.software_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.software_name_.Set("", GetArena());
  }
  return released;
}
inline void EnableZebraRequest::set_allocated_software_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.software_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.software_name_.IsDefault()) {
    _impl_.software_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.EnableZebraRequest.software_name)
}

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

// EnableMrtRequest

// .apipb.EnableMrtRequest.DumpType type = 1;
inline void EnableMrtRequest::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::EnableMrtRequest_DumpType EnableMrtRequest::type() const {
  // @@protoc_insertion_point(field_get:apipb.EnableMrtRequest.type)
  return _internal_type();
}
inline void EnableMrtRequest::set_type(::apipb::EnableMrtRequest_DumpType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.EnableMrtRequest.type)
}
inline ::apipb::EnableMrtRequest_DumpType EnableMrtRequest::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::EnableMrtRequest_DumpType>(_impl_.type_);
}
inline void EnableMrtRequest::_internal_set_type(::apipb::EnableMrtRequest_DumpType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// string filename = 2;
inline void EnableMrtRequest::clear_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& EnableMrtRequest::filename() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.EnableMrtRequest.filename)
  return _internal_filename();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnableMrtRequest::set_filename(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.filename_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.EnableMrtRequest.filename)
}
inline ::std::string* PROTOBUF_NONNULL EnableMrtRequest::mutable_filename()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_filename();
  // @@protoc_insertion_point(field_mutable:apipb.EnableMrtRequest.filename)
  return _s;
}
inline const ::std::string& EnableMrtRequest::_internal_filename() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filename_.Get();
}
inline void EnableMrtRequest::_internal_set_filename(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnableMrtRequest::_internal_mutable_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filename_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnableMrtRequest::release_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.EnableMrtRequest.filename)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.filename_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filename_.Set("", GetArena());
  }
  return released;
}
inline void EnableMrtRequest::set_allocated_filename(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.filename_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filename_.IsDefault()) {
    _impl_.filename_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.EnableMrtRequest.filename)
}

// uint64 dump_interval = 3;
inline void EnableMrtRequest::clear_dump_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dump_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t EnableMrtRequest::dump_interval() const {
  // @@protoc_insertion_point(field_get:apipb.EnableMrtRequest.dump_interval)
  return _internal_dump_interval();
}
inline void EnableMrtRequest::set_dump_interval(::uint64_t value) {
  _internal_set_dump_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.EnableMrtRequest.dump_interval)
}
inline ::uint64_t EnableMrtRequest::_internal_dump_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dump_interval_;
}
inline void EnableMrtRequest::_internal_set_dump_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dump_interval_ = value;
}

// uint64 rotation_interval = 4;
inline void EnableMrtRequest::clear_rotation_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rotation_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t EnableMrtRequest::rotation_interval() const {
  // @@protoc_insertion_point(field_get:apipb.EnableMrtRequest.rotation_interval)
  return _internal_rotation_interval();
}
inline void EnableMrtRequest::set_rotation_interval(::uint64_t value) {
  _internal_set_rotation_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.EnableMrtRequest.rotation_interval)
}
inline ::uint64_t EnableMrtRequest::_internal_rotation_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.rotation_interval_;
}
inline void EnableMrtRequest::_internal_set_rotation_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rotation_interval_ = value;
}

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

// DisableMrtRequest

// string filename = 1;
inline void DisableMrtRequest::clear_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DisableMrtRequest::filename() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DisableMrtRequest.filename)
  return _internal_filename();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DisableMrtRequest::set_filename(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.filename_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DisableMrtRequest.filename)
}
inline ::std::string* PROTOBUF_NONNULL DisableMrtRequest::mutable_filename()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_filename();
  // @@protoc_insertion_point(field_mutable:apipb.DisableMrtRequest.filename)
  return _s;
}
inline const ::std::string& DisableMrtRequest::_internal_filename() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filename_.Get();
}
inline void DisableMrtRequest::_internal_set_filename(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DisableMrtRequest::_internal_mutable_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filename_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DisableMrtRequest::release_filename() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DisableMrtRequest.filename)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.filename_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filename_.Set("", GetArena());
  }
  return released;
}
inline void DisableMrtRequest::set_allocated_filename(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.filename_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filename_.IsDefault()) {
    _impl_.filename_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DisableMrtRequest.filename)
}

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

// AddBmpRequest

// string address = 1;
inline void AddBmpRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& AddBmpRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddBmpRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.AddBmpRequest.address)
  return _s;
}
inline const ::std::string& AddBmpRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void AddBmpRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddBmpRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddBmpRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void AddBmpRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddBmpRequest.address)
}

// uint32 port = 2;
inline void AddBmpRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t AddBmpRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.port)
  return _internal_port();
}
inline void AddBmpRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.port)
}
inline ::uint32_t AddBmpRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void AddBmpRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

// .apipb.AddBmpRequest.MonitoringPolicy policy = 3;
inline void AddBmpRequest::clear_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.policy_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::apipb::AddBmpRequest_MonitoringPolicy AddBmpRequest::policy() const {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.policy)
  return _internal_policy();
}
inline void AddBmpRequest::set_policy(::apipb::AddBmpRequest_MonitoringPolicy value) {
  _internal_set_policy(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.policy)
}
inline ::apipb::AddBmpRequest_MonitoringPolicy AddBmpRequest::_internal_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::AddBmpRequest_MonitoringPolicy>(_impl_.policy_);
}
inline void AddBmpRequest::_internal_set_policy(::apipb::AddBmpRequest_MonitoringPolicy value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.policy_ = value;
}

// int32 StatisticsTimeout = 4;
inline void AddBmpRequest::clear_statisticstimeout() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.statisticstimeout_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int32_t AddBmpRequest::statisticstimeout() const {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.StatisticsTimeout)
  return _internal_statisticstimeout();
}
inline void AddBmpRequest::set_statisticstimeout(::int32_t value) {
  _internal_set_statisticstimeout(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.StatisticsTimeout)
}
inline ::int32_t AddBmpRequest::_internal_statisticstimeout() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.statisticstimeout_;
}
inline void AddBmpRequest::_internal_set_statisticstimeout(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.statisticstimeout_ = value;
}

// string SysName = 5;
inline void AddBmpRequest::clear_sysname() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sysname_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& AddBmpRequest::sysname() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.SysName)
  return _internal_sysname();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddBmpRequest::set_sysname(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.sysname_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.SysName)
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::mutable_sysname()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_sysname();
  // @@protoc_insertion_point(field_mutable:apipb.AddBmpRequest.SysName)
  return _s;
}
inline const ::std::string& AddBmpRequest::_internal_sysname() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sysname_.Get();
}
inline void AddBmpRequest::_internal_set_sysname(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sysname_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::_internal_mutable_sysname() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sysname_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddBmpRequest::release_sysname() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddBmpRequest.SysName)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.sysname_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sysname_.Set("", GetArena());
  }
  return released;
}
inline void AddBmpRequest::set_allocated_sysname(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.sysname_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sysname_.IsDefault()) {
    _impl_.sysname_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddBmpRequest.SysName)
}

// string SysDescr = 6;
inline void AddBmpRequest::clear_sysdescr() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sysdescr_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& AddBmpRequest::sysdescr() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddBmpRequest.SysDescr)
  return _internal_sysdescr();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AddBmpRequest::set_sysdescr(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.sysdescr_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.AddBmpRequest.SysDescr)
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::mutable_sysdescr()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_sysdescr();
  // @@protoc_insertion_point(field_mutable:apipb.AddBmpRequest.SysDescr)
  return _s;
}
inline const ::std::string& AddBmpRequest::_internal_sysdescr() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sysdescr_.Get();
}
inline void AddBmpRequest::_internal_set_sysdescr(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sysdescr_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AddBmpRequest::_internal_mutable_sysdescr() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sysdescr_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AddBmpRequest::release_sysdescr() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddBmpRequest.SysDescr)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.sysdescr_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sysdescr_.Set("", GetArena());
  }
  return released;
}
inline void AddBmpRequest::set_allocated_sysdescr(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.sysdescr_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sysdescr_.IsDefault()) {
    _impl_.sysdescr_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.AddBmpRequest.SysDescr)
}

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

// DeleteBmpRequest

// string address = 1;
inline void DeleteBmpRequest::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteBmpRequest::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DeleteBmpRequest.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteBmpRequest::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DeleteBmpRequest.address)
}
inline ::std::string* PROTOBUF_NONNULL DeleteBmpRequest::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.DeleteBmpRequest.address)
  return _s;
}
inline const ::std::string& DeleteBmpRequest::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void DeleteBmpRequest::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteBmpRequest::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteBmpRequest::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DeleteBmpRequest.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void DeleteBmpRequest::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DeleteBmpRequest.address)
}

// uint32 port = 2;
inline void DeleteBmpRequest::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t DeleteBmpRequest::port() const {
  // @@protoc_insertion_point(field_get:apipb.DeleteBmpRequest.port)
  return _internal_port();
}
inline void DeleteBmpRequest::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DeleteBmpRequest.port)
}
inline ::uint32_t DeleteBmpRequest::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void DeleteBmpRequest::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

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

// ListBmpRequest

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

// ListBmpResponse_BmpStation_Conf

// string address = 1;
inline void ListBmpResponse_BmpStation_Conf::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListBmpResponse_BmpStation_Conf::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.Conf.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListBmpResponse_BmpStation_Conf::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.ListBmpResponse.BmpStation.Conf.address)
}
inline ::std::string* PROTOBUF_NONNULL ListBmpResponse_BmpStation_Conf::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.BmpStation.Conf.address)
  return _s;
}
inline const ::std::string& ListBmpResponse_BmpStation_Conf::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void ListBmpResponse_BmpStation_Conf::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListBmpResponse_BmpStation_Conf::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListBmpResponse_BmpStation_Conf::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.BmpStation.Conf.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void ListBmpResponse_BmpStation_Conf::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.BmpStation.Conf.address)
}

// uint32 port = 2;
inline void ListBmpResponse_BmpStation_Conf::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t ListBmpResponse_BmpStation_Conf::port() const {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.Conf.port)
  return _internal_port();
}
inline void ListBmpResponse_BmpStation_Conf::set_port(::uint32_t value) {
  _internal_set_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.ListBmpResponse.BmpStation.Conf.port)
}
inline ::uint32_t ListBmpResponse_BmpStation_Conf::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_;
}
inline void ListBmpResponse_BmpStation_Conf::_internal_set_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_ = value;
}

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

// ListBmpResponse_BmpStation_State

// .google.protobuf.Timestamp uptime = 1;
inline bool ListBmpResponse_BmpStation_State::has_uptime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.uptime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& ListBmpResponse_BmpStation_State::_internal_uptime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.uptime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& ListBmpResponse_BmpStation_State::uptime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.State.uptime)
  return _internal_uptime();
}
inline void ListBmpResponse_BmpStation_State::unsafe_arena_set_allocated_uptime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }
  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListBmpResponse.BmpStation.State.uptime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE ListBmpResponse_BmpStation_State::release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* released = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE ListBmpResponse_BmpStation_State::unsafe_arena_release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.BmpStation.State.uptime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* temp = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL ListBmpResponse_BmpStation_State::_internal_mutable_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.uptime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.uptime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL ListBmpResponse_BmpStation_State::mutable_uptime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_uptime();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.BmpStation.State.uptime)
  return _msg;
}
inline void ListBmpResponse_BmpStation_State::set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.BmpStation.State.uptime)
}

// .google.protobuf.Timestamp downtime = 2;
inline bool ListBmpResponse_BmpStation_State::has_downtime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.downtime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& ListBmpResponse_BmpStation_State::_internal_downtime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.downtime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& ListBmpResponse_BmpStation_State::downtime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.State.downtime)
  return _internal_downtime();
}
inline void ListBmpResponse_BmpStation_State::unsafe_arena_set_allocated_downtime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }
  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListBmpResponse.BmpStation.State.downtime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE ListBmpResponse_BmpStation_State::release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* released = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE ListBmpResponse_BmpStation_State::unsafe_arena_release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.BmpStation.State.downtime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* temp = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL ListBmpResponse_BmpStation_State::_internal_mutable_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.downtime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.downtime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL ListBmpResponse_BmpStation_State::mutable_downtime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_downtime();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.BmpStation.State.downtime)
  return _msg;
}
inline void ListBmpResponse_BmpStation_State::set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.BmpStation.State.downtime)
}

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

// ListBmpResponse_BmpStation

// .apipb.ListBmpResponse.BmpStation.Conf conf = 1;
inline bool ListBmpResponse_BmpStation::has_conf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.conf_ != nullptr);
  return value;
}
inline void ListBmpResponse_BmpStation::clear_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ != nullptr) _impl_.conf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::ListBmpResponse_BmpStation_Conf& ListBmpResponse_BmpStation::_internal_conf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ListBmpResponse_BmpStation_Conf* p = _impl_.conf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ListBmpResponse_BmpStation_Conf>(&::apipb::ListBmpResponse_BmpStation_Conf_globals_);
}
inline const ::apipb::ListBmpResponse_BmpStation_Conf& ListBmpResponse_BmpStation::conf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.conf)
  return _internal_conf();
}
inline void ListBmpResponse_BmpStation::unsafe_arena_set_allocated_conf(
    ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }
  _impl_.conf_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_Conf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListBmpResponse.BmpStation.conf)
}
inline ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE ListBmpResponse_BmpStation::release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation_Conf* released = _impl_.conf_;
  _impl_.conf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE ListBmpResponse_BmpStation::unsafe_arena_release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.BmpStation.conf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation_Conf* temp = _impl_.conf_;
  _impl_.conf_ = nullptr;
  return temp;
}
inline ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL ListBmpResponse_BmpStation::_internal_mutable_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ListBmpResponse_BmpStation_Conf>(GetArena());
    _impl_.conf_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_Conf*>(p);
  }
  return _impl_.conf_;
}
inline ::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NONNULL ListBmpResponse_BmpStation::mutable_conf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation_Conf* _msg = _internal_mutable_conf();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.BmpStation.conf)
  return _msg;
}
inline void ListBmpResponse_BmpStation::set_allocated_conf(::apipb::ListBmpResponse_BmpStation_Conf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.conf_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_Conf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.BmpStation.conf)
}

// .apipb.ListBmpResponse.BmpStation.State state = 2;
inline bool ListBmpResponse_BmpStation::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void ListBmpResponse_BmpStation::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::ListBmpResponse_BmpStation_State& ListBmpResponse_BmpStation::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ListBmpResponse_BmpStation_State* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ListBmpResponse_BmpStation_State>(&::apipb::ListBmpResponse_BmpStation_State_globals_);
}
inline const ::apipb::ListBmpResponse_BmpStation_State& ListBmpResponse_BmpStation::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.BmpStation.state)
  return _internal_state();
}
inline void ListBmpResponse_BmpStation::unsafe_arena_set_allocated_state(
    ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_State*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListBmpResponse.BmpStation.state)
}
inline ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE ListBmpResponse_BmpStation::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ListBmpResponse_BmpStation_State* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE ListBmpResponse_BmpStation::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.BmpStation.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ListBmpResponse_BmpStation_State* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL ListBmpResponse_BmpStation::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ListBmpResponse_BmpStation_State>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_State*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NONNULL ListBmpResponse_BmpStation::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ListBmpResponse_BmpStation_State* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.BmpStation.state)
  return _msg;
}
inline void ListBmpResponse_BmpStation::set_allocated_state(::apipb::ListBmpResponse_BmpStation_State* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation_State*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.BmpStation.state)
}

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

// ListBmpResponse

// .apipb.ListBmpResponse.BmpStation station = 1;
inline bool ListBmpResponse::has_station() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.station_ != nullptr);
  return value;
}
inline void ListBmpResponse::clear_station() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.station_ != nullptr) _impl_.station_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::ListBmpResponse_BmpStation& ListBmpResponse::_internal_station() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ListBmpResponse_BmpStation* p = _impl_.station_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ListBmpResponse_BmpStation>(&::apipb::ListBmpResponse_BmpStation_globals_);
}
inline const ::apipb::ListBmpResponse_BmpStation& ListBmpResponse::station() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ListBmpResponse.station)
  return _internal_station();
}
inline void ListBmpResponse::unsafe_arena_set_allocated_station(
    ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.station_);
  }
  _impl_.station_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ListBmpResponse.station)
}
inline ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE ListBmpResponse::release_station() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation* released = _impl_.station_;
  _impl_.station_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE ListBmpResponse::unsafe_arena_release_station() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ListBmpResponse.station)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation* temp = _impl_.station_;
  _impl_.station_ = nullptr;
  return temp;
}
inline ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NONNULL ListBmpResponse::_internal_mutable_station() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.station_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ListBmpResponse_BmpStation>(GetArena());
    _impl_.station_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation*>(p);
  }
  return _impl_.station_;
}
inline ::apipb::ListBmpResponse_BmpStation* PROTOBUF_NONNULL ListBmpResponse::mutable_station()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::ListBmpResponse_BmpStation* _msg = _internal_mutable_station();
  // @@protoc_insertion_point(field_mutable:apipb.ListBmpResponse.station)
  return _msg;
}
inline void ListBmpResponse::set_allocated_station(::apipb::ListBmpResponse_BmpStation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.station_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.station_ = reinterpret_cast<::apipb::ListBmpResponse_BmpStation*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ListBmpResponse.station)
}

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

// Family

// .apipb.Family.Afi afi = 1;
inline void Family::clear_afi() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.afi_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::apipb::Family_Afi Family::afi() const {
  // @@protoc_insertion_point(field_get:apipb.Family.afi)
  return _internal_afi();
}
inline void Family::set_afi(::apipb::Family_Afi value) {
  _internal_set_afi(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.Family.afi)
}
inline ::apipb::Family_Afi Family::_internal_afi() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::Family_Afi>(_impl_.afi_);
}
inline void Family::_internal_set_afi(::apipb::Family_Afi value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.afi_ = value;
}

// .apipb.Family.Safi safi = 2;
inline void Family::clear_safi() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.safi_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::Family_Safi Family::safi() const {
  // @@protoc_insertion_point(field_get:apipb.Family.safi)
  return _internal_safi();
}
inline void Family::set_safi(::apipb::Family_Safi value) {
  _internal_set_safi(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.Family.safi)
}
inline ::apipb::Family_Safi Family::_internal_safi() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::Family_Safi>(_impl_.safi_);
}
inline void Family::_internal_set_safi(::apipb::Family_Safi value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.safi_ = value;
}

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

// Validation

// .apipb.Validation.State state = 1;
inline void Validation::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::Validation_State Validation::state() const {
  // @@protoc_insertion_point(field_get:apipb.Validation.state)
  return _internal_state();
}
inline void Validation::set_state(::apipb::Validation_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.Validation.state)
}
inline ::apipb::Validation_State Validation::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::Validation_State>(_impl_.state_);
}
inline void Validation::_internal_set_state(::apipb::Validation_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// .apipb.Validation.Reason reason = 2;
inline void Validation::clear_reason() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reason_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::apipb::Validation_Reason Validation::reason() const {
  // @@protoc_insertion_point(field_get:apipb.Validation.reason)
  return _internal_reason();
}
inline void Validation::set_reason(::apipb::Validation_Reason value) {
  _internal_set_reason(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.Validation.reason)
}
inline ::apipb::Validation_Reason Validation::_internal_reason() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::Validation_Reason>(_impl_.reason_);
}
inline void Validation::_internal_set_reason(::apipb::Validation_Reason value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reason_ = value;
}

// repeated .apipb.Roa matched = 3;
inline int Validation::_internal_matched_size() const {
  return _internal_matched().size();
}
inline int Validation::matched_size() const {
  return _internal_matched_size();
}
inline void Validation::clear_matched() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.matched_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Roa& Validation::matched(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Validation.matched)
  return _internal_matched().Get(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::mutable_matched(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Validation.matched)
  return _internal_mutable_matched()->Mutable(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::add_matched()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Roa* _add =
      _internal_mutable_matched()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Validation.matched)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& Validation::matched() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Validation.matched)
  return _internal_matched();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::mutable_matched() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Validation.matched)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_matched();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
Validation::_internal_matched() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.matched_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::_internal_mutable_matched() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.matched_;
}

// repeated .apipb.Roa unmatched_asn = 4;
inline int Validation::_internal_unmatched_asn_size() const {
  return _internal_unmatched_asn().size();
}
inline int Validation::unmatched_asn_size() const {
  return _internal_unmatched_asn_size();
}
inline void Validation::clear_unmatched_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.unmatched_asn_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Roa& Validation::unmatched_asn(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Validation.unmatched_asn)
  return _internal_unmatched_asn().Get(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::mutable_unmatched_asn(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Validation.unmatched_asn)
  return _internal_mutable_unmatched_asn()->Mutable(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::add_unmatched_asn()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Roa* _add =
      _internal_mutable_unmatched_asn()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.Validation.unmatched_asn)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& Validation::unmatched_asn() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Validation.unmatched_asn)
  return _internal_unmatched_asn();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::mutable_unmatched_asn() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Validation.unmatched_asn)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_unmatched_asn();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
Validation::_internal_unmatched_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.unmatched_asn_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::_internal_mutable_unmatched_asn() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.unmatched_asn_;
}

// repeated .apipb.Roa unmatched_length = 5;
inline int Validation::_internal_unmatched_length_size() const {
  return _internal_unmatched_length().size();
}
inline int Validation::unmatched_length_size() const {
  return _internal_unmatched_length_size();
}
inline void Validation::clear_unmatched_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.unmatched_length_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::Roa& Validation::unmatched_length(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Validation.unmatched_length)
  return _internal_unmatched_length().Get(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::mutable_unmatched_length(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Validation.unmatched_length)
  return _internal_mutable_unmatched_length()->Mutable(index);
}
inline ::apipb::Roa* PROTOBUF_NONNULL Validation::add_unmatched_length()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Roa* _add =
      _internal_mutable_unmatched_length()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:apipb.Validation.unmatched_length)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>& Validation::unmatched_length() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Validation.unmatched_length)
  return _internal_unmatched_length();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::mutable_unmatched_length() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Validation.unmatched_length)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_unmatched_length();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Roa>&
Validation::_internal_unmatched_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.unmatched_length_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Roa>* PROTOBUF_NONNULL
Validation::_internal_mutable_unmatched_length() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.unmatched_length_;
}

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

// Path

// .google.protobuf.Any nlri = 1;
inline bool Path::has_nlri() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.nlri_ != nullptr);
  return value;
}
inline const ::google::protobuf::Any& Path::_internal_nlri() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Any* p = _impl_.nlri_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Any>(&::google::protobuf::Any_globals_);
}
inline const ::google::protobuf::Any& Path::nlri() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.nlri)
  return _internal_nlri();
}
inline void Path::unsafe_arena_set_allocated_nlri(
    ::google::protobuf::Any* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.nlri_);
  }
  _impl_.nlri_ = reinterpret_cast<::google::protobuf::Any*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Path.nlri)
}
inline ::google::protobuf::Any* PROTOBUF_NULLABLE Path::release_nlri() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::protobuf::Any* released = _impl_.nlri_;
  _impl_.nlri_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Any* PROTOBUF_NULLABLE Path::unsafe_arena_release_nlri() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.nlri)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::protobuf::Any* temp = _impl_.nlri_;
  _impl_.nlri_ = nullptr;
  return temp;
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Path::_internal_mutable_nlri() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.nlri_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Any>(GetArena());
    _impl_.nlri_ = reinterpret_cast<::google::protobuf::Any*>(p);
  }
  return _impl_.nlri_;
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Path::mutable_nlri()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::protobuf::Any* _msg = _internal_mutable_nlri();
  // @@protoc_insertion_point(field_mutable:apipb.Path.nlri)
  return _msg;
}
inline void Path::set_allocated_nlri(::google::protobuf::Any* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.nlri_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.nlri_ = reinterpret_cast<::google::protobuf::Any*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.nlri)
}

// repeated .google.protobuf.Any pattrs = 2;
inline int Path::_internal_pattrs_size() const {
  return _internal_pattrs().size();
}
inline int Path::pattrs_size() const {
  return _internal_pattrs_size();
}
inline const ::google::protobuf::Any& Path::pattrs(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.pattrs)
  return _internal_pattrs().Get(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Path::mutable_pattrs(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Path.pattrs)
  return _internal_mutable_pattrs()->Mutable(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Path::add_pattrs()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::Any* _add =
      _internal_mutable_pattrs()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Path.pattrs)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& Path::pattrs() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Path.pattrs)
  return _internal_pattrs();
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Path::mutable_pattrs() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Path.pattrs)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_pattrs();
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
Path::_internal_pattrs() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.pattrs_;
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Path::_internal_mutable_pattrs() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.pattrs_;
}

// .google.protobuf.Timestamp age = 3;
inline bool Path::has_age() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.age_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& Path::_internal_age() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.age_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& Path::age() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.age)
  return _internal_age();
}
inline void Path::unsafe_arena_set_allocated_age(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.age_);
  }
  _impl_.age_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Path.age)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE Path::release_age() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::protobuf::Timestamp* released = _impl_.age_;
  _impl_.age_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE Path::unsafe_arena_release_age() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.age)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::protobuf::Timestamp* temp = _impl_.age_;
  _impl_.age_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL Path::_internal_mutable_age() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.age_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.age_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.age_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL Path::mutable_age()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_age();
  // @@protoc_insertion_point(field_mutable:apipb.Path.age)
  return _msg;
}
inline void Path::set_allocated_age(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.age_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.age_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.age)
}

// bool best = 4;
inline void Path::clear_best() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline bool Path::best() const {
  // @@protoc_insertion_point(field_get:apipb.Path.best)
  return _internal_best();
}
inline void Path::set_best(bool value) {
  _internal_set_best(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.Path.best)
}
inline bool Path::_internal_best() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.best_;
}
inline void Path::_internal_set_best(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_ = value;
}

// bool is_withdraw = 5;
inline void Path::clear_is_withdraw() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_withdraw_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline bool Path::is_withdraw() const {
  // @@protoc_insertion_point(field_get:apipb.Path.is_withdraw)
  return _internal_is_withdraw();
}
inline void Path::set_is_withdraw(bool value) {
  _internal_set_is_withdraw(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:apipb.Path.is_withdraw)
}
inline bool Path::_internal_is_withdraw() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.is_withdraw_;
}
inline void Path::_internal_set_is_withdraw(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_withdraw_ = value;
}

// .apipb.Validation validation = 7;
inline bool Path::has_validation() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.validation_ != nullptr);
  return value;
}
inline void Path::clear_validation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.validation_ != nullptr) _impl_.validation_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::Validation& Path::_internal_validation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Validation* p = _impl_.validation_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Validation>(&::apipb::Validation_globals_);
}
inline const ::apipb::Validation& Path::validation() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.validation)
  return _internal_validation();
}
inline void Path::unsafe_arena_set_allocated_validation(
    ::apipb::Validation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.validation_);
  }
  _impl_.validation_ = reinterpret_cast<::apipb::Validation*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Path.validation)
}
inline ::apipb::Validation* PROTOBUF_NULLABLE Path::release_validation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Validation* released = _impl_.validation_;
  _impl_.validation_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Validation* PROTOBUF_NULLABLE Path::unsafe_arena_release_validation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.validation)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Validation* temp = _impl_.validation_;
  _impl_.validation_ = nullptr;
  return temp;
}
inline ::apipb::Validation* PROTOBUF_NONNULL Path::_internal_mutable_validation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.validation_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Validation>(GetArena());
    _impl_.validation_ = reinterpret_cast<::apipb::Validation*>(p);
  }
  return _impl_.validation_;
}
inline ::apipb::Validation* PROTOBUF_NONNULL Path::mutable_validation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Validation* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:apipb.Path.validation)
  return _msg;
}
inline void Path::set_allocated_validation(::apipb::Validation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.validation_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.validation_ = reinterpret_cast<::apipb::Validation*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.validation)
}

// bool no_implicit_withdraw = 8;
inline void Path::clear_no_implicit_withdraw() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.no_implicit_withdraw_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline bool Path::no_implicit_withdraw() const {
  // @@protoc_insertion_point(field_get:apipb.Path.no_implicit_withdraw)
  return _internal_no_implicit_withdraw();
}
inline void Path::set_no_implicit_withdraw(bool value) {
  _internal_set_no_implicit_withdraw(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:apipb.Path.no_implicit_withdraw)
}
inline bool Path::_internal_no_implicit_withdraw() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.no_implicit_withdraw_;
}
inline void Path::_internal_set_no_implicit_withdraw(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.no_implicit_withdraw_ = value;
}

// .apipb.Family family = 9;
inline bool Path::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void Path::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::apipb::Family& Path::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& Path::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.family)
  return _internal_family();
}
inline void Path::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Path.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE Path::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE Path::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL Path::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL Path::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.Path.family)
  return _msg;
}
inline void Path::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.family)
}

// uint32 source_asn = 10;
inline void Path::clear_source_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.source_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::uint32_t Path::source_asn() const {
  // @@protoc_insertion_point(field_get:apipb.Path.source_asn)
  return _internal_source_asn();
}
inline void Path::set_source_asn(::uint32_t value) {
  _internal_set_source_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:apipb.Path.source_asn)
}
inline ::uint32_t Path::_internal_source_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.source_asn_;
}
inline void Path::_internal_set_source_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.source_asn_ = value;
}

// string source_id = 11;
inline void Path::clear_source_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.source_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Path::source_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.source_id)
  return _internal_source_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Path::set_source_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.source_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Path.source_id)
}
inline ::std::string* PROTOBUF_NONNULL Path::mutable_source_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_source_id();
  // @@protoc_insertion_point(field_mutable:apipb.Path.source_id)
  return _s;
}
inline const ::std::string& Path::_internal_source_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.source_id_.Get();
}
inline void Path::_internal_set_source_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.source_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Path::_internal_mutable_source_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.source_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Path::release_source_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.source_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.source_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.source_id_.Set("", GetArena());
  }
  return released;
}
inline void Path::set_allocated_source_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.source_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.source_id_.IsDefault()) {
    _impl_.source_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.source_id)
}

// bool filtered = 12;
inline void Path::clear_filtered() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filtered_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline bool Path::filtered() const {
  // @@protoc_insertion_point(field_get:apipb.Path.filtered)
  return _internal_filtered();
}
inline void Path::set_filtered(bool value) {
  _internal_set_filtered(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:apipb.Path.filtered)
}
inline bool Path::_internal_filtered() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filtered_;
}
inline void Path::_internal_set_filtered(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filtered_ = value;
}

// bool stale = 13;
inline void Path::clear_stale() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline bool Path::stale() const {
  // @@protoc_insertion_point(field_get:apipb.Path.stale)
  return _internal_stale();
}
inline void Path::set_stale(bool value) {
  _internal_set_stale(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:apipb.Path.stale)
}
inline bool Path::_internal_stale() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stale_;
}
inline void Path::_internal_set_stale(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_ = value;
}

// bool is_from_external = 14;
inline void Path::clear_is_from_external() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_from_external_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline bool Path::is_from_external() const {
  // @@protoc_insertion_point(field_get:apipb.Path.is_from_external)
  return _internal_is_from_external();
}
inline void Path::set_is_from_external(bool value) {
  _internal_set_is_from_external(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:apipb.Path.is_from_external)
}
inline bool Path::_internal_is_from_external() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.is_from_external_;
}
inline void Path::_internal_set_is_from_external(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_from_external_ = value;
}

// string neighbor_ip = 15;
inline void Path::clear_neighbor_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_ip_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& Path::neighbor_ip() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.neighbor_ip)
  return _internal_neighbor_ip();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Path::set_neighbor_ip(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.neighbor_ip_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Path.neighbor_ip)
}
inline ::std::string* PROTOBUF_NONNULL Path::mutable_neighbor_ip()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_neighbor_ip();
  // @@protoc_insertion_point(field_mutable:apipb.Path.neighbor_ip)
  return _s;
}
inline const ::std::string& Path::_internal_neighbor_ip() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.neighbor_ip_.Get();
}
inline void Path::_internal_set_neighbor_ip(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_ip_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Path::_internal_mutable_neighbor_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.neighbor_ip_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Path::release_neighbor_ip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.neighbor_ip)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.neighbor_ip_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.neighbor_ip_.Set("", GetArena());
  }
  return released;
}
inline void Path::set_allocated_neighbor_ip(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.neighbor_ip_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.neighbor_ip_.IsDefault()) {
    _impl_.neighbor_ip_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.neighbor_ip)
}

// bytes uuid = 16;
inline void Path::clear_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& Path::uuid() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.uuid)
  return _internal_uuid();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Path::set_uuid(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.uuid_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Path.uuid)
}
inline ::std::string* PROTOBUF_NONNULL Path::mutable_uuid()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_uuid();
  // @@protoc_insertion_point(field_mutable:apipb.Path.uuid)
  return _s;
}
inline const ::std::string& Path::_internal_uuid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.uuid_.Get();
}
inline void Path::_internal_set_uuid(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.uuid_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Path::_internal_mutable_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.uuid_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Path::release_uuid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.uuid)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.uuid_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.uuid_.Set("", GetArena());
  }
  return released;
}
inline void Path::set_allocated_uuid(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.uuid_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.uuid_.IsDefault()) {
    _impl_.uuid_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.uuid)
}

// bool is_nexthop_invalid = 17;
inline void Path::clear_is_nexthop_invalid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_nexthop_invalid_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
inline bool Path::is_nexthop_invalid() const {
  // @@protoc_insertion_point(field_get:apipb.Path.is_nexthop_invalid)
  return _internal_is_nexthop_invalid();
}
inline void Path::set_is_nexthop_invalid(bool value) {
  _internal_set_is_nexthop_invalid(value);
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  // @@protoc_insertion_point(field_set:apipb.Path.is_nexthop_invalid)
}
inline bool Path::_internal_is_nexthop_invalid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.is_nexthop_invalid_;
}
inline void Path::_internal_set_is_nexthop_invalid(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_nexthop_invalid_ = value;
}

// uint32 identifier = 18;
inline void Path::clear_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.identifier_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
inline ::uint32_t Path::identifier() const {
  // @@protoc_insertion_point(field_get:apipb.Path.identifier)
  return _internal_identifier();
}
inline void Path::set_identifier(::uint32_t value) {
  _internal_set_identifier(value);
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  // @@protoc_insertion_point(field_set:apipb.Path.identifier)
}
inline ::uint32_t Path::_internal_identifier() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.identifier_;
}
inline void Path::_internal_set_identifier(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.identifier_ = value;
}

// uint32 local_identifier = 19;
inline void Path::clear_local_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_identifier_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
}
inline ::uint32_t Path::local_identifier() const {
  // @@protoc_insertion_point(field_get:apipb.Path.local_identifier)
  return _internal_local_identifier();
}
inline void Path::set_local_identifier(::uint32_t value) {
  _internal_set_local_identifier(value);
  SetHasBit(_impl_._has_bits_[0], 0x00080000U);
  // @@protoc_insertion_point(field_set:apipb.Path.local_identifier)
}
inline ::uint32_t Path::_internal_local_identifier() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_identifier_;
}
inline void Path::_internal_set_local_identifier(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_identifier_ = value;
}

// bytes nlri_binary = 20;
inline void Path::clear_nlri_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nlri_binary_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& Path::nlri_binary() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.nlri_binary)
  return _internal_nlri_binary();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Path::set_nlri_binary(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.nlri_binary_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Path.nlri_binary)
}
inline ::std::string* PROTOBUF_NONNULL Path::mutable_nlri_binary()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_nlri_binary();
  // @@protoc_insertion_point(field_mutable:apipb.Path.nlri_binary)
  return _s;
}
inline const ::std::string& Path::_internal_nlri_binary() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nlri_binary_.Get();
}
inline void Path::_internal_set_nlri_binary(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nlri_binary_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Path::_internal_mutable_nlri_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.nlri_binary_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Path::release_nlri_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Path.nlri_binary)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.nlri_binary_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.nlri_binary_.Set("", GetArena());
  }
  return released;
}
inline void Path::set_allocated_nlri_binary(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.nlri_binary_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.nlri_binary_.IsDefault()) {
    _impl_.nlri_binary_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Path.nlri_binary)
}

// repeated bytes pattrs_binary = 21;
inline int Path::_internal_pattrs_binary_size() const {
  return _internal_pattrs_binary().size();
}
inline int Path::pattrs_binary_size() const {
  return _internal_pattrs_binary_size();
}
inline void Path::clear_pattrs_binary() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pattrs_binary_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::std::string* PROTOBUF_NONNULL Path::add_pattrs_binary()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_pattrs_binary()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add_mutable:apipb.Path.pattrs_binary)
  return _s;
}
inline const ::std::string& Path::pattrs_binary(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Path.pattrs_binary)
  return _internal_pattrs_binary().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Path::mutable_pattrs_binary(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Path.pattrs_binary)
  return _internal_mutable_pattrs_binary()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Path::set_pattrs_binary(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_pattrs_binary()->Mutable(index),
      ::std::forward<Arg_>(value), args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:apipb.Path.pattrs_binary)
}
template <typename Arg_, typename... Args_>
inline void Path::add_pattrs_binary(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_pattrs_binary(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.Path.pattrs_binary)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Path::pattrs_binary()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Path.pattrs_binary)
  return _internal_pattrs_binary();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Path::mutable_pattrs_binary() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Path.pattrs_binary)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_pattrs_binary();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Path::_internal_pattrs_binary() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.pattrs_binary_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Path::_internal_mutable_pattrs_binary() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.pattrs_binary_;
}

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

// Destination

// string prefix = 1;
inline void Destination::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Destination::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Destination.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Destination::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Destination.prefix)
}
inline ::std::string* PROTOBUF_NONNULL Destination::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.Destination.prefix)
  return _s;
}
inline const ::std::string& Destination::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void Destination::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Destination::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Destination::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Destination.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void Destination::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Destination.prefix)
}

// repeated .apipb.Path paths = 2;
inline int Destination::_internal_paths_size() const {
  return _internal_paths().size();
}
inline int Destination::paths_size() const {
  return _internal_paths_size();
}
inline void Destination::clear_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.paths_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Path& Destination::paths(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Destination.paths)
  return _internal_paths().Get(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL Destination::mutable_paths(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Destination.paths)
  return _internal_mutable_paths()->Mutable(index);
}
inline ::apipb::Path* PROTOBUF_NONNULL Destination::add_paths()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Path* _add =
      _internal_mutable_paths()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Destination.paths)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>& Destination::paths() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Destination.paths)
  return _internal_paths();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
Destination::mutable_paths() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Destination.paths)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_paths();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Path>&
Destination::_internal_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.paths_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Path>* PROTOBUF_NONNULL
Destination::_internal_mutable_paths() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.paths_;
}

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

// Peer

// .apipb.ApplyPolicy apply_policy = 1;
inline bool Peer::has_apply_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.apply_policy_ != nullptr);
  return value;
}
inline void Peer::clear_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ != nullptr) _impl_.apply_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::ApplyPolicy& Peer::_internal_apply_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ApplyPolicy* p = _impl_.apply_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ApplyPolicy>(&::apipb::ApplyPolicy_globals_);
}
inline const ::apipb::ApplyPolicy& Peer::apply_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.apply_policy)
  return _internal_apply_policy();
}
inline void Peer::unsafe_arena_set_allocated_apply_policy(
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }
  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.apply_policy)
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE Peer::release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* released = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE Peer::unsafe_arena_release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.apply_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* temp = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  return temp;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL Peer::_internal_mutable_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ApplyPolicy>(GetArena());
    _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(p);
  }
  return _impl_.apply_policy_;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL Peer::mutable_apply_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* _msg = _internal_mutable_apply_policy();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.apply_policy)
  return _msg;
}
inline void Peer::set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.apply_policy)
}

// .apipb.PeerConf conf = 2;
inline bool Peer::has_conf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.conf_ != nullptr);
  return value;
}
inline void Peer::clear_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ != nullptr) _impl_.conf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::PeerConf& Peer::_internal_conf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerConf* p = _impl_.conf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerConf>(&::apipb::PeerConf_globals_);
}
inline const ::apipb::PeerConf& Peer::conf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.conf)
  return _internal_conf();
}
inline void Peer::unsafe_arena_set_allocated_conf(
    ::apipb::PeerConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }
  _impl_.conf_ = reinterpret_cast<::apipb::PeerConf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.conf)
}
inline ::apipb::PeerConf* PROTOBUF_NULLABLE Peer::release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerConf* released = _impl_.conf_;
  _impl_.conf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerConf* PROTOBUF_NULLABLE Peer::unsafe_arena_release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.conf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerConf* temp = _impl_.conf_;
  _impl_.conf_ = nullptr;
  return temp;
}
inline ::apipb::PeerConf* PROTOBUF_NONNULL Peer::_internal_mutable_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerConf>(GetArena());
    _impl_.conf_ = reinterpret_cast<::apipb::PeerConf*>(p);
  }
  return _impl_.conf_;
}
inline ::apipb::PeerConf* PROTOBUF_NONNULL Peer::mutable_conf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerConf* _msg = _internal_mutable_conf();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.conf)
  return _msg;
}
inline void Peer::set_allocated_conf(::apipb::PeerConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.conf_ = reinterpret_cast<::apipb::PeerConf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.conf)
}

// .apipb.EbgpMultihop ebgp_multihop = 3;
inline bool Peer::has_ebgp_multihop() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.ebgp_multihop_ != nullptr);
  return value;
}
inline void Peer::clear_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_multihop_ != nullptr) _impl_.ebgp_multihop_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::EbgpMultihop& Peer::_internal_ebgp_multihop() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::EbgpMultihop* p = _impl_.ebgp_multihop_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::EbgpMultihop>(&::apipb::EbgpMultihop_globals_);
}
inline const ::apipb::EbgpMultihop& Peer::ebgp_multihop() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.ebgp_multihop)
  return _internal_ebgp_multihop();
}
inline void Peer::unsafe_arena_set_allocated_ebgp_multihop(
    ::apipb::EbgpMultihop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_multihop_);
  }
  _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.ebgp_multihop)
}
inline ::apipb::EbgpMultihop* PROTOBUF_NULLABLE Peer::release_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* released = _impl_.ebgp_multihop_;
  _impl_.ebgp_multihop_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NULLABLE Peer::unsafe_arena_release_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.ebgp_multihop)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* temp = _impl_.ebgp_multihop_;
  _impl_.ebgp_multihop_ = nullptr;
  return temp;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NONNULL Peer::_internal_mutable_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_multihop_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::EbgpMultihop>(GetArena());
    _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(p);
  }
  return _impl_.ebgp_multihop_;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NONNULL Peer::mutable_ebgp_multihop()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* _msg = _internal_mutable_ebgp_multihop();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.ebgp_multihop)
  return _msg;
}
inline void Peer::set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_multihop_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.ebgp_multihop)
}

// .apipb.RouteReflector route_reflector = 4;
inline bool Peer::has_route_reflector() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.route_reflector_ != nullptr);
  return value;
}
inline void Peer::clear_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_reflector_ != nullptr) _impl_.route_reflector_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::RouteReflector& Peer::_internal_route_reflector() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteReflector* p = _impl_.route_reflector_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteReflector>(&::apipb::RouteReflector_globals_);
}
inline const ::apipb::RouteReflector& Peer::route_reflector() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.route_reflector)
  return _internal_route_reflector();
}
inline void Peer::unsafe_arena_set_allocated_route_reflector(
    ::apipb::RouteReflector* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_reflector_);
  }
  _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.route_reflector)
}
inline ::apipb::RouteReflector* PROTOBUF_NULLABLE Peer::release_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* released = _impl_.route_reflector_;
  _impl_.route_reflector_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteReflector* PROTOBUF_NULLABLE Peer::unsafe_arena_release_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.route_reflector)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* temp = _impl_.route_reflector_;
  _impl_.route_reflector_ = nullptr;
  return temp;
}
inline ::apipb::RouteReflector* PROTOBUF_NONNULL Peer::_internal_mutable_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_reflector_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteReflector>(GetArena());
    _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(p);
  }
  return _impl_.route_reflector_;
}
inline ::apipb::RouteReflector* PROTOBUF_NONNULL Peer::mutable_route_reflector()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* _msg = _internal_mutable_route_reflector();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.route_reflector)
  return _msg;
}
inline void Peer::set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_reflector_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.route_reflector)
}

// .apipb.PeerState state = 5;
inline bool Peer::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void Peer::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::PeerState& Peer::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerState>(&::apipb::PeerState_globals_);
}
inline const ::apipb::PeerState& Peer::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.state)
  return _internal_state();
}
inline void Peer::unsafe_arena_set_allocated_state(
    ::apipb::PeerState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::PeerState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.state)
}
inline ::apipb::PeerState* PROTOBUF_NULLABLE Peer::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerState* PROTOBUF_NULLABLE Peer::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::PeerState* PROTOBUF_NONNULL Peer::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::PeerState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::PeerState* PROTOBUF_NONNULL Peer::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.state)
  return _msg;
}
inline void Peer::set_allocated_state(::apipb::PeerState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::PeerState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.state)
}

// .apipb.Timers timers = 6;
inline bool Peer::has_timers() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.timers_ != nullptr);
  return value;
}
inline void Peer::clear_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timers_ != nullptr) _impl_.timers_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::Timers& Peer::_internal_timers() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Timers* p = _impl_.timers_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Timers>(&::apipb::Timers_globals_);
}
inline const ::apipb::Timers& Peer::timers() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.timers)
  return _internal_timers();
}
inline void Peer::unsafe_arena_set_allocated_timers(
    ::apipb::Timers* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timers_);
  }
  _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.timers)
}
inline ::apipb::Timers* PROTOBUF_NULLABLE Peer::release_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* released = _impl_.timers_;
  _impl_.timers_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Timers* PROTOBUF_NULLABLE Peer::unsafe_arena_release_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.timers)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* temp = _impl_.timers_;
  _impl_.timers_ = nullptr;
  return temp;
}
inline ::apipb::Timers* PROTOBUF_NONNULL Peer::_internal_mutable_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timers_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Timers>(GetArena());
    _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(p);
  }
  return _impl_.timers_;
}
inline ::apipb::Timers* PROTOBUF_NONNULL Peer::mutable_timers()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* _msg = _internal_mutable_timers();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.timers)
  return _msg;
}
inline void Peer::set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timers_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.timers)
}

// .apipb.Transport transport = 7;
inline bool Peer::has_transport() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.transport_ != nullptr);
  return value;
}
inline void Peer::clear_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.transport_ != nullptr) _impl_.transport_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::Transport& Peer::_internal_transport() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Transport* p = _impl_.transport_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Transport>(&::apipb::Transport_globals_);
}
inline const ::apipb::Transport& Peer::transport() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.transport)
  return _internal_transport();
}
inline void Peer::unsafe_arena_set_allocated_transport(
    ::apipb::Transport* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.transport_);
  }
  _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.transport)
}
inline ::apipb::Transport* PROTOBUF_NULLABLE Peer::release_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* released = _impl_.transport_;
  _impl_.transport_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Transport* PROTOBUF_NULLABLE Peer::unsafe_arena_release_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.transport)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* temp = _impl_.transport_;
  _impl_.transport_ = nullptr;
  return temp;
}
inline ::apipb::Transport* PROTOBUF_NONNULL Peer::_internal_mutable_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.transport_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Transport>(GetArena());
    _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(p);
  }
  return _impl_.transport_;
}
inline ::apipb::Transport* PROTOBUF_NONNULL Peer::mutable_transport()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* _msg = _internal_mutable_transport();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.transport)
  return _msg;
}
inline void Peer::set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.transport_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.transport)
}

// .apipb.RouteServer route_server = 8;
inline bool Peer::has_route_server() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.route_server_ != nullptr);
  return value;
}
inline void Peer::clear_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_server_ != nullptr) _impl_.route_server_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::RouteServer& Peer::_internal_route_server() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteServer* p = _impl_.route_server_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteServer>(&::apipb::RouteServer_globals_);
}
inline const ::apipb::RouteServer& Peer::route_server() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.route_server)
  return _internal_route_server();
}
inline void Peer::unsafe_arena_set_allocated_route_server(
    ::apipb::RouteServer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_server_);
  }
  _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.route_server)
}
inline ::apipb::RouteServer* PROTOBUF_NULLABLE Peer::release_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* released = _impl_.route_server_;
  _impl_.route_server_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteServer* PROTOBUF_NULLABLE Peer::unsafe_arena_release_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.route_server)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* temp = _impl_.route_server_;
  _impl_.route_server_ = nullptr;
  return temp;
}
inline ::apipb::RouteServer* PROTOBUF_NONNULL Peer::_internal_mutable_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_server_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteServer>(GetArena());
    _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(p);
  }
  return _impl_.route_server_;
}
inline ::apipb::RouteServer* PROTOBUF_NONNULL Peer::mutable_route_server()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* _msg = _internal_mutable_route_server();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.route_server)
  return _msg;
}
inline void Peer::set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_server_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.route_server)
}

// .apipb.GracefulRestart graceful_restart = 9;
inline bool Peer::has_graceful_restart() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.graceful_restart_ != nullptr);
  return value;
}
inline void Peer::clear_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ != nullptr) _impl_.graceful_restart_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::apipb::GracefulRestart& Peer::_internal_graceful_restart() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::GracefulRestart* p = _impl_.graceful_restart_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::GracefulRestart>(&::apipb::GracefulRestart_globals_);
}
inline const ::apipb::GracefulRestart& Peer::graceful_restart() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.graceful_restart)
  return _internal_graceful_restart();
}
inline void Peer::unsafe_arena_set_allocated_graceful_restart(
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }
  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.graceful_restart)
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE Peer::release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* released = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE Peer::unsafe_arena_release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.graceful_restart)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* temp = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  return temp;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL Peer::_internal_mutable_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::GracefulRestart>(GetArena());
    _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(p);
  }
  return _impl_.graceful_restart_;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL Peer::mutable_graceful_restart()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* _msg = _internal_mutable_graceful_restart();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.graceful_restart)
  return _msg;
}
inline void Peer::set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.graceful_restart)
}

// repeated .apipb.AfiSafi afi_safis = 10;
inline int Peer::_internal_afi_safis_size() const {
  return _internal_afi_safis().size();
}
inline int Peer::afi_safis_size() const {
  return _internal_afi_safis_size();
}
inline void Peer::clear_afi_safis() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.afi_safis_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::AfiSafi& Peer::afi_safis(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.afi_safis)
  return _internal_afi_safis().Get(index);
}
inline ::apipb::AfiSafi* PROTOBUF_NONNULL Peer::mutable_afi_safis(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Peer.afi_safis)
  return _internal_mutable_afi_safis()->Mutable(index);
}
inline ::apipb::AfiSafi* PROTOBUF_NONNULL Peer::add_afi_safis()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::AfiSafi* _add =
      _internal_mutable_afi_safis()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Peer.afi_safis)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>& Peer::afi_safis() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Peer.afi_safis)
  return _internal_afi_safis();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
Peer::mutable_afi_safis() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Peer.afi_safis)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_afi_safis();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>&
Peer::_internal_afi_safis() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.afi_safis_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
Peer::_internal_mutable_afi_safis() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.afi_safis_;
}

// .apipb.TtlSecurity ttl_security = 11;
inline bool Peer::has_ttl_security() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  PROTOBUF_ASSUME(!value || _impl_.ttl_security_ != nullptr);
  return value;
}
inline void Peer::clear_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ttl_security_ != nullptr) _impl_.ttl_security_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline const ::apipb::TtlSecurity& Peer::_internal_ttl_security() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::TtlSecurity* p = _impl_.ttl_security_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::TtlSecurity>(&::apipb::TtlSecurity_globals_);
}
inline const ::apipb::TtlSecurity& Peer::ttl_security() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Peer.ttl_security)
  return _internal_ttl_security();
}
inline void Peer::unsafe_arena_set_allocated_ttl_security(
    ::apipb::TtlSecurity* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_security_);
  }
  _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Peer.ttl_security)
}
inline ::apipb::TtlSecurity* PROTOBUF_NULLABLE Peer::release_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* released = _impl_.ttl_security_;
  _impl_.ttl_security_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::TtlSecurity* PROTOBUF_NULLABLE Peer::unsafe_arena_release_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Peer.ttl_security)

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* temp = _impl_.ttl_security_;
  _impl_.ttl_security_ = nullptr;
  return temp;
}
inline ::apipb::TtlSecurity* PROTOBUF_NONNULL Peer::_internal_mutable_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ttl_security_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::TtlSecurity>(GetArena());
    _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(p);
  }
  return _impl_.ttl_security_;
}
inline ::apipb::TtlSecurity* PROTOBUF_NONNULL Peer::mutable_ttl_security()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* _msg = _internal_mutable_ttl_security();
  // @@protoc_insertion_point(field_mutable:apipb.Peer.ttl_security)
  return _msg;
}
inline void Peer::set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_security_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }

  _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Peer.ttl_security)
}

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

// PeerGroup

// .apipb.ApplyPolicy apply_policy = 1;
inline bool PeerGroup::has_apply_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.apply_policy_ != nullptr);
  return value;
}
inline void PeerGroup::clear_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ != nullptr) _impl_.apply_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::ApplyPolicy& PeerGroup::_internal_apply_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ApplyPolicy* p = _impl_.apply_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ApplyPolicy>(&::apipb::ApplyPolicy_globals_);
}
inline const ::apipb::ApplyPolicy& PeerGroup::apply_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.apply_policy)
  return _internal_apply_policy();
}
inline void PeerGroup::unsafe_arena_set_allocated_apply_policy(
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }
  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.apply_policy)
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE PeerGroup::release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* released = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.apply_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* temp = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  return temp;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL PeerGroup::_internal_mutable_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ApplyPolicy>(GetArena());
    _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(p);
  }
  return _impl_.apply_policy_;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL PeerGroup::mutable_apply_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::ApplyPolicy* _msg = _internal_mutable_apply_policy();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.apply_policy)
  return _msg;
}
inline void PeerGroup::set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.apply_policy)
}

// .apipb.PeerGroupConf conf = 2;
inline bool PeerGroup::has_conf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.conf_ != nullptr);
  return value;
}
inline void PeerGroup::clear_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ != nullptr) _impl_.conf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::PeerGroupConf& PeerGroup::_internal_conf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerGroupConf* p = _impl_.conf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerGroupConf>(&::apipb::PeerGroupConf_globals_);
}
inline const ::apipb::PeerGroupConf& PeerGroup::conf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.conf)
  return _internal_conf();
}
inline void PeerGroup::unsafe_arena_set_allocated_conf(
    ::apipb::PeerGroupConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }
  _impl_.conf_ = reinterpret_cast<::apipb::PeerGroupConf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.conf)
}
inline ::apipb::PeerGroupConf* PROTOBUF_NULLABLE PeerGroup::release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerGroupConf* released = _impl_.conf_;
  _impl_.conf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerGroupConf* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.conf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerGroupConf* temp = _impl_.conf_;
  _impl_.conf_ = nullptr;
  return temp;
}
inline ::apipb::PeerGroupConf* PROTOBUF_NONNULL PeerGroup::_internal_mutable_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerGroupConf>(GetArena());
    _impl_.conf_ = reinterpret_cast<::apipb::PeerGroupConf*>(p);
  }
  return _impl_.conf_;
}
inline ::apipb::PeerGroupConf* PROTOBUF_NONNULL PeerGroup::mutable_conf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PeerGroupConf* _msg = _internal_mutable_conf();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.conf)
  return _msg;
}
inline void PeerGroup::set_allocated_conf(::apipb::PeerGroupConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.conf_ = reinterpret_cast<::apipb::PeerGroupConf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.conf)
}

// .apipb.EbgpMultihop ebgp_multihop = 3;
inline bool PeerGroup::has_ebgp_multihop() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.ebgp_multihop_ != nullptr);
  return value;
}
inline void PeerGroup::clear_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_multihop_ != nullptr) _impl_.ebgp_multihop_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::EbgpMultihop& PeerGroup::_internal_ebgp_multihop() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::EbgpMultihop* p = _impl_.ebgp_multihop_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::EbgpMultihop>(&::apipb::EbgpMultihop_globals_);
}
inline const ::apipb::EbgpMultihop& PeerGroup::ebgp_multihop() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.ebgp_multihop)
  return _internal_ebgp_multihop();
}
inline void PeerGroup::unsafe_arena_set_allocated_ebgp_multihop(
    ::apipb::EbgpMultihop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_multihop_);
  }
  _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.ebgp_multihop)
}
inline ::apipb::EbgpMultihop* PROTOBUF_NULLABLE PeerGroup::release_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* released = _impl_.ebgp_multihop_;
  _impl_.ebgp_multihop_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.ebgp_multihop)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* temp = _impl_.ebgp_multihop_;
  _impl_.ebgp_multihop_ = nullptr;
  return temp;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NONNULL PeerGroup::_internal_mutable_ebgp_multihop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_multihop_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::EbgpMultihop>(GetArena());
    _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(p);
  }
  return _impl_.ebgp_multihop_;
}
inline ::apipb::EbgpMultihop* PROTOBUF_NONNULL PeerGroup::mutable_ebgp_multihop()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::EbgpMultihop* _msg = _internal_mutable_ebgp_multihop();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.ebgp_multihop)
  return _msg;
}
inline void PeerGroup::set_allocated_ebgp_multihop(::apipb::EbgpMultihop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_multihop_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.ebgp_multihop_ = reinterpret_cast<::apipb::EbgpMultihop*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.ebgp_multihop)
}

// .apipb.RouteReflector route_reflector = 4;
inline bool PeerGroup::has_route_reflector() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.route_reflector_ != nullptr);
  return value;
}
inline void PeerGroup::clear_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_reflector_ != nullptr) _impl_.route_reflector_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::RouteReflector& PeerGroup::_internal_route_reflector() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteReflector* p = _impl_.route_reflector_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteReflector>(&::apipb::RouteReflector_globals_);
}
inline const ::apipb::RouteReflector& PeerGroup::route_reflector() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.route_reflector)
  return _internal_route_reflector();
}
inline void PeerGroup::unsafe_arena_set_allocated_route_reflector(
    ::apipb::RouteReflector* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_reflector_);
  }
  _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.route_reflector)
}
inline ::apipb::RouteReflector* PROTOBUF_NULLABLE PeerGroup::release_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* released = _impl_.route_reflector_;
  _impl_.route_reflector_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteReflector* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.route_reflector)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* temp = _impl_.route_reflector_;
  _impl_.route_reflector_ = nullptr;
  return temp;
}
inline ::apipb::RouteReflector* PROTOBUF_NONNULL PeerGroup::_internal_mutable_route_reflector() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_reflector_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteReflector>(GetArena());
    _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(p);
  }
  return _impl_.route_reflector_;
}
inline ::apipb::RouteReflector* PROTOBUF_NONNULL PeerGroup::mutable_route_reflector()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteReflector* _msg = _internal_mutable_route_reflector();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.route_reflector)
  return _msg;
}
inline void PeerGroup::set_allocated_route_reflector(::apipb::RouteReflector* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_reflector_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.route_reflector_ = reinterpret_cast<::apipb::RouteReflector*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.route_reflector)
}

// .apipb.PeerGroupState info = 5;
inline bool PeerGroup::has_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.info_ != nullptr);
  return value;
}
inline void PeerGroup::clear_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.info_ != nullptr) _impl_.info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::PeerGroupState& PeerGroup::_internal_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PeerGroupState* p = _impl_.info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PeerGroupState>(&::apipb::PeerGroupState_globals_);
}
inline const ::apipb::PeerGroupState& PeerGroup::info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.info)
  return _internal_info();
}
inline void PeerGroup::unsafe_arena_set_allocated_info(
    ::apipb::PeerGroupState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.info_);
  }
  _impl_.info_ = reinterpret_cast<::apipb::PeerGroupState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.info)
}
inline ::apipb::PeerGroupState* PROTOBUF_NULLABLE PeerGroup::release_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerGroupState* released = _impl_.info_;
  _impl_.info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PeerGroupState* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerGroupState* temp = _impl_.info_;
  _impl_.info_ = nullptr;
  return temp;
}
inline ::apipb::PeerGroupState* PROTOBUF_NONNULL PeerGroup::_internal_mutable_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.info_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PeerGroupState>(GetArena());
    _impl_.info_ = reinterpret_cast<::apipb::PeerGroupState*>(p);
  }
  return _impl_.info_;
}
inline ::apipb::PeerGroupState* PROTOBUF_NONNULL PeerGroup::mutable_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::PeerGroupState* _msg = _internal_mutable_info();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.info)
  return _msg;
}
inline void PeerGroup::set_allocated_info(::apipb::PeerGroupState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.info_ = reinterpret_cast<::apipb::PeerGroupState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.info)
}

// .apipb.Timers timers = 6;
inline bool PeerGroup::has_timers() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.timers_ != nullptr);
  return value;
}
inline void PeerGroup::clear_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timers_ != nullptr) _impl_.timers_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::Timers& PeerGroup::_internal_timers() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Timers* p = _impl_.timers_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Timers>(&::apipb::Timers_globals_);
}
inline const ::apipb::Timers& PeerGroup::timers() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.timers)
  return _internal_timers();
}
inline void PeerGroup::unsafe_arena_set_allocated_timers(
    ::apipb::Timers* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timers_);
  }
  _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.timers)
}
inline ::apipb::Timers* PROTOBUF_NULLABLE PeerGroup::release_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* released = _impl_.timers_;
  _impl_.timers_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Timers* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.timers)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* temp = _impl_.timers_;
  _impl_.timers_ = nullptr;
  return temp;
}
inline ::apipb::Timers* PROTOBUF_NONNULL PeerGroup::_internal_mutable_timers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timers_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Timers>(GetArena());
    _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(p);
  }
  return _impl_.timers_;
}
inline ::apipb::Timers* PROTOBUF_NONNULL PeerGroup::mutable_timers()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Timers* _msg = _internal_mutable_timers();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.timers)
  return _msg;
}
inline void PeerGroup::set_allocated_timers(::apipb::Timers* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timers_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.timers_ = reinterpret_cast<::apipb::Timers*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.timers)
}

// .apipb.Transport transport = 7;
inline bool PeerGroup::has_transport() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.transport_ != nullptr);
  return value;
}
inline void PeerGroup::clear_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.transport_ != nullptr) _impl_.transport_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::Transport& PeerGroup::_internal_transport() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Transport* p = _impl_.transport_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Transport>(&::apipb::Transport_globals_);
}
inline const ::apipb::Transport& PeerGroup::transport() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.transport)
  return _internal_transport();
}
inline void PeerGroup::unsafe_arena_set_allocated_transport(
    ::apipb::Transport* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.transport_);
  }
  _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.transport)
}
inline ::apipb::Transport* PROTOBUF_NULLABLE PeerGroup::release_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* released = _impl_.transport_;
  _impl_.transport_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Transport* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.transport)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* temp = _impl_.transport_;
  _impl_.transport_ = nullptr;
  return temp;
}
inline ::apipb::Transport* PROTOBUF_NONNULL PeerGroup::_internal_mutable_transport() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.transport_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Transport>(GetArena());
    _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(p);
  }
  return _impl_.transport_;
}
inline ::apipb::Transport* PROTOBUF_NONNULL PeerGroup::mutable_transport()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Transport* _msg = _internal_mutable_transport();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.transport)
  return _msg;
}
inline void PeerGroup::set_allocated_transport(::apipb::Transport* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.transport_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.transport_ = reinterpret_cast<::apipb::Transport*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.transport)
}

// .apipb.RouteServer route_server = 8;
inline bool PeerGroup::has_route_server() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.route_server_ != nullptr);
  return value;
}
inline void PeerGroup::clear_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_server_ != nullptr) _impl_.route_server_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::RouteServer& PeerGroup::_internal_route_server() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteServer* p = _impl_.route_server_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteServer>(&::apipb::RouteServer_globals_);
}
inline const ::apipb::RouteServer& PeerGroup::route_server() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.route_server)
  return _internal_route_server();
}
inline void PeerGroup::unsafe_arena_set_allocated_route_server(
    ::apipb::RouteServer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_server_);
  }
  _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.route_server)
}
inline ::apipb::RouteServer* PROTOBUF_NULLABLE PeerGroup::release_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* released = _impl_.route_server_;
  _impl_.route_server_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteServer* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.route_server)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* temp = _impl_.route_server_;
  _impl_.route_server_ = nullptr;
  return temp;
}
inline ::apipb::RouteServer* PROTOBUF_NONNULL PeerGroup::_internal_mutable_route_server() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_server_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteServer>(GetArena());
    _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(p);
  }
  return _impl_.route_server_;
}
inline ::apipb::RouteServer* PROTOBUF_NONNULL PeerGroup::mutable_route_server()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::RouteServer* _msg = _internal_mutable_route_server();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.route_server)
  return _msg;
}
inline void PeerGroup::set_allocated_route_server(::apipb::RouteServer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_server_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.route_server_ = reinterpret_cast<::apipb::RouteServer*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.route_server)
}

// .apipb.GracefulRestart graceful_restart = 9;
inline bool PeerGroup::has_graceful_restart() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.graceful_restart_ != nullptr);
  return value;
}
inline void PeerGroup::clear_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ != nullptr) _impl_.graceful_restart_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::apipb::GracefulRestart& PeerGroup::_internal_graceful_restart() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::GracefulRestart* p = _impl_.graceful_restart_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::GracefulRestart>(&::apipb::GracefulRestart_globals_);
}
inline const ::apipb::GracefulRestart& PeerGroup::graceful_restart() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.graceful_restart)
  return _internal_graceful_restart();
}
inline void PeerGroup::unsafe_arena_set_allocated_graceful_restart(
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }
  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.graceful_restart)
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE PeerGroup::release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* released = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.graceful_restart)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* temp = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  return temp;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL PeerGroup::_internal_mutable_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::GracefulRestart>(GetArena());
    _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(p);
  }
  return _impl_.graceful_restart_;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL PeerGroup::mutable_graceful_restart()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::GracefulRestart* _msg = _internal_mutable_graceful_restart();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.graceful_restart)
  return _msg;
}
inline void PeerGroup::set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.graceful_restart)
}

// repeated .apipb.AfiSafi afi_safis = 10;
inline int PeerGroup::_internal_afi_safis_size() const {
  return _internal_afi_safis().size();
}
inline int PeerGroup::afi_safis_size() const {
  return _internal_afi_safis_size();
}
inline void PeerGroup::clear_afi_safis() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.afi_safis_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::AfiSafi& PeerGroup::afi_safis(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.afi_safis)
  return _internal_afi_safis().Get(index);
}
inline ::apipb::AfiSafi* PROTOBUF_NONNULL PeerGroup::mutable_afi_safis(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.afi_safis)
  return _internal_mutable_afi_safis()->Mutable(index);
}
inline ::apipb::AfiSafi* PROTOBUF_NONNULL PeerGroup::add_afi_safis()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::AfiSafi* _add =
      _internal_mutable_afi_safis()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.PeerGroup.afi_safis)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>& PeerGroup::afi_safis() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.PeerGroup.afi_safis)
  return _internal_afi_safis();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
PeerGroup::mutable_afi_safis() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.PeerGroup.afi_safis)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_afi_safis();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>&
PeerGroup::_internal_afi_safis() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.afi_safis_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::AfiSafi>* PROTOBUF_NONNULL
PeerGroup::_internal_mutable_afi_safis() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.afi_safis_;
}

// .apipb.TtlSecurity ttl_security = 11;
inline bool PeerGroup::has_ttl_security() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  PROTOBUF_ASSUME(!value || _impl_.ttl_security_ != nullptr);
  return value;
}
inline void PeerGroup::clear_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ttl_security_ != nullptr) _impl_.ttl_security_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline const ::apipb::TtlSecurity& PeerGroup::_internal_ttl_security() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::TtlSecurity* p = _impl_.ttl_security_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::TtlSecurity>(&::apipb::TtlSecurity_globals_);
}
inline const ::apipb::TtlSecurity& PeerGroup::ttl_security() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroup.ttl_security)
  return _internal_ttl_security();
}
inline void PeerGroup::unsafe_arena_set_allocated_ttl_security(
    ::apipb::TtlSecurity* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_security_);
  }
  _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerGroup.ttl_security)
}
inline ::apipb::TtlSecurity* PROTOBUF_NULLABLE PeerGroup::release_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* released = _impl_.ttl_security_;
  _impl_.ttl_security_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::TtlSecurity* PROTOBUF_NULLABLE PeerGroup::unsafe_arena_release_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroup.ttl_security)

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* temp = _impl_.ttl_security_;
  _impl_.ttl_security_ = nullptr;
  return temp;
}
inline ::apipb::TtlSecurity* PROTOBUF_NONNULL PeerGroup::_internal_mutable_ttl_security() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ttl_security_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::TtlSecurity>(GetArena());
    _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(p);
  }
  return _impl_.ttl_security_;
}
inline ::apipb::TtlSecurity* PROTOBUF_NONNULL PeerGroup::mutable_ttl_security()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::apipb::TtlSecurity* _msg = _internal_mutable_ttl_security();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroup.ttl_security)
  return _msg;
}
inline void PeerGroup::set_allocated_ttl_security(::apipb::TtlSecurity* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_security_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }

  _impl_.ttl_security_ = reinterpret_cast<::apipb::TtlSecurity*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroup.ttl_security)
}

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

// DynamicNeighbor

// string prefix = 1;
inline void DynamicNeighbor::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DynamicNeighbor::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DynamicNeighbor.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DynamicNeighbor::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DynamicNeighbor.prefix)
}
inline ::std::string* PROTOBUF_NONNULL DynamicNeighbor::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.DynamicNeighbor.prefix)
  return _s;
}
inline const ::std::string& DynamicNeighbor::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void DynamicNeighbor::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DynamicNeighbor::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DynamicNeighbor::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DynamicNeighbor.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void DynamicNeighbor::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DynamicNeighbor.prefix)
}

// string peer_group = 2;
inline void DynamicNeighbor::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DynamicNeighbor::peer_group() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DynamicNeighbor.peer_group)
  return _internal_peer_group();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DynamicNeighbor::set_peer_group(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.peer_group_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DynamicNeighbor.peer_group)
}
inline ::std::string* PROTOBUF_NONNULL DynamicNeighbor::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.DynamicNeighbor.peer_group)
  return _s;
}
inline const ::std::string& DynamicNeighbor::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_.Get();
}
inline void DynamicNeighbor::_internal_set_peer_group(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DynamicNeighbor::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DynamicNeighbor::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DynamicNeighbor.peer_group)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.peer_group_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  return released;
}
inline void DynamicNeighbor::set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.peer_group_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_.IsDefault()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DynamicNeighbor.peer_group)
}

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

// ApplyPolicy

// .apipb.PolicyAssignment in_policy = 1;
inline bool ApplyPolicy::has_in_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.in_policy_ != nullptr);
  return value;
}
inline void ApplyPolicy::clear_in_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.in_policy_ != nullptr) _impl_.in_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::_internal_in_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.in_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::in_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ApplyPolicy.in_policy)
  return _internal_in_policy();
}
inline void ApplyPolicy::unsafe_arena_set_allocated_in_policy(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.in_policy_);
  }
  _impl_.in_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ApplyPolicy.in_policy)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::release_in_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* released = _impl_.in_policy_;
  _impl_.in_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::unsafe_arena_release_in_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ApplyPolicy.in_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* temp = _impl_.in_policy_;
  _impl_.in_policy_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::_internal_mutable_in_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.in_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.in_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.in_policy_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::mutable_in_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_in_policy();
  // @@protoc_insertion_point(field_mutable:apipb.ApplyPolicy.in_policy)
  return _msg;
}
inline void ApplyPolicy::set_allocated_in_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.in_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.in_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ApplyPolicy.in_policy)
}

// .apipb.PolicyAssignment export_policy = 2;
inline bool ApplyPolicy::has_export_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.export_policy_ != nullptr);
  return value;
}
inline void ApplyPolicy::clear_export_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.export_policy_ != nullptr) _impl_.export_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::_internal_export_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.export_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::export_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ApplyPolicy.export_policy)
  return _internal_export_policy();
}
inline void ApplyPolicy::unsafe_arena_set_allocated_export_policy(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.export_policy_);
  }
  _impl_.export_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ApplyPolicy.export_policy)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::release_export_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::PolicyAssignment* released = _impl_.export_policy_;
  _impl_.export_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::unsafe_arena_release_export_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ApplyPolicy.export_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::PolicyAssignment* temp = _impl_.export_policy_;
  _impl_.export_policy_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::_internal_mutable_export_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.export_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.export_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.export_policy_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::mutable_export_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_export_policy();
  // @@protoc_insertion_point(field_mutable:apipb.ApplyPolicy.export_policy)
  return _msg;
}
inline void ApplyPolicy::set_allocated_export_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.export_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.export_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ApplyPolicy.export_policy)
}

// .apipb.PolicyAssignment import_policy = 3;
inline bool ApplyPolicy::has_import_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.import_policy_ != nullptr);
  return value;
}
inline void ApplyPolicy::clear_import_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.import_policy_ != nullptr) _impl_.import_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::_internal_import_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PolicyAssignment* p = _impl_.import_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PolicyAssignment>(&::apipb::PolicyAssignment_globals_);
}
inline const ::apipb::PolicyAssignment& ApplyPolicy::import_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.ApplyPolicy.import_policy)
  return _internal_import_policy();
}
inline void ApplyPolicy::unsafe_arena_set_allocated_import_policy(
    ::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.import_policy_);
  }
  _impl_.import_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.ApplyPolicy.import_policy)
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::release_import_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PolicyAssignment* released = _impl_.import_policy_;
  _impl_.import_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NULLABLE ApplyPolicy::unsafe_arena_release_import_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.ApplyPolicy.import_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PolicyAssignment* temp = _impl_.import_policy_;
  _impl_.import_policy_ = nullptr;
  return temp;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::_internal_mutable_import_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.import_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PolicyAssignment>(GetArena());
    _impl_.import_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(p);
  }
  return _impl_.import_policy_;
}
inline ::apipb::PolicyAssignment* PROTOBUF_NONNULL ApplyPolicy::mutable_import_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::PolicyAssignment* _msg = _internal_mutable_import_policy();
  // @@protoc_insertion_point(field_mutable:apipb.ApplyPolicy.import_policy)
  return _msg;
}
inline void ApplyPolicy::set_allocated_import_policy(::apipb::PolicyAssignment* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.import_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.import_policy_ = reinterpret_cast<::apipb::PolicyAssignment*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.ApplyPolicy.import_policy)
}

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

// PrefixLimit

// .apipb.Family family = 1;
inline bool PrefixLimit::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void PrefixLimit::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Family& PrefixLimit::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& PrefixLimit::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PrefixLimit.family)
  return _internal_family();
}
inline void PrefixLimit::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PrefixLimit.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE PrefixLimit::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE PrefixLimit::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PrefixLimit.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL PrefixLimit::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL PrefixLimit::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.PrefixLimit.family)
  return _msg;
}
inline void PrefixLimit::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PrefixLimit.family)
}

// uint32 max_prefixes = 2;
inline void PrefixLimit::clear_max_prefixes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_prefixes_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t PrefixLimit::max_prefixes() const {
  // @@protoc_insertion_point(field_get:apipb.PrefixLimit.max_prefixes)
  return _internal_max_prefixes();
}
inline void PrefixLimit::set_max_prefixes(::uint32_t value) {
  _internal_set_max_prefixes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.PrefixLimit.max_prefixes)
}
inline ::uint32_t PrefixLimit::_internal_max_prefixes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_prefixes_;
}
inline void PrefixLimit::_internal_set_max_prefixes(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_prefixes_ = value;
}

// uint32 shutdown_threshold_pct = 3;
inline void PrefixLimit::clear_shutdown_threshold_pct() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shutdown_threshold_pct_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t PrefixLimit::shutdown_threshold_pct() const {
  // @@protoc_insertion_point(field_get:apipb.PrefixLimit.shutdown_threshold_pct)
  return _internal_shutdown_threshold_pct();
}
inline void PrefixLimit::set_shutdown_threshold_pct(::uint32_t value) {
  _internal_set_shutdown_threshold_pct(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.PrefixLimit.shutdown_threshold_pct)
}
inline ::uint32_t PrefixLimit::_internal_shutdown_threshold_pct() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.shutdown_threshold_pct_;
}
inline void PrefixLimit::_internal_set_shutdown_threshold_pct(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shutdown_threshold_pct_ = value;
}

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

// PeerConf

// string auth_password = 1;
inline void PeerConf::clear_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PeerConf::auth_password() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.auth_password)
  return _internal_auth_password();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_auth_password(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.auth_password_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.auth_password)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_auth_password()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_auth_password();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.auth_password)
  return _s;
}
inline const ::std::string& PeerConf::_internal_auth_password() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.auth_password_.Get();
}
inline void PeerConf::_internal_set_auth_password(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.auth_password_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.auth_password)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.auth_password_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.auth_password_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.auth_password_.IsDefault()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.auth_password)
}

// string description = 2;
inline void PeerConf::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PeerConf::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.description)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.description)
  return _s;
}
inline const ::std::string& PeerConf::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void PeerConf::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_description(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.description)
}

// uint32 local_asn = 3;
inline void PeerConf::clear_local_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t PeerConf::local_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.local_asn)
  return _internal_local_asn();
}
inline void PeerConf::set_local_asn(::uint32_t value) {
  _internal_set_local_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.local_asn)
}
inline ::uint32_t PeerConf::_internal_local_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_asn_;
}
inline void PeerConf::_internal_set_local_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = value;
}

// string neighbor_address = 4;
inline void PeerConf::clear_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PeerConf::neighbor_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.neighbor_address)
  return _internal_neighbor_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_neighbor_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.neighbor_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.neighbor_address)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_neighbor_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_neighbor_address();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.neighbor_address)
  return _s;
}
inline const ::std::string& PeerConf::_internal_neighbor_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.neighbor_address_.Get();
}
inline void PeerConf::_internal_set_neighbor_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.neighbor_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.neighbor_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.neighbor_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.neighbor_address_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_neighbor_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.neighbor_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.neighbor_address_.IsDefault()) {
    _impl_.neighbor_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.neighbor_address)
}

// uint32 peer_asn = 5;
inline void PeerConf::clear_peer_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t PeerConf::peer_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.peer_asn)
  return _internal_peer_asn();
}
inline void PeerConf::set_peer_asn(::uint32_t value) {
  _internal_set_peer_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.peer_asn)
}
inline ::uint32_t PeerConf::_internal_peer_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_asn_;
}
inline void PeerConf::_internal_set_peer_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = value;
}

// string peer_group = 6;
inline void PeerConf::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& PeerConf::peer_group() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.peer_group)
  return _internal_peer_group();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_peer_group(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.peer_group_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.peer_group)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.peer_group)
  return _s;
}
inline const ::std::string& PeerConf::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_.Get();
}
inline void PeerConf::_internal_set_peer_group(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.peer_group)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.peer_group_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.peer_group_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_.IsDefault()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.peer_group)
}

// .apipb.PeerType type = 7;
inline void PeerConf::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::apipb::PeerType PeerConf::type() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.type)
  return _internal_type();
}
inline void PeerConf::set_type(::apipb::PeerType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.type)
}
inline ::apipb::PeerType PeerConf::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerType>(_impl_.type_);
}
inline void PeerConf::_internal_set_type(::apipb::PeerType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// .apipb.RemovePrivate remove_private = 8;
inline void PeerConf::clear_remove_private() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::apipb::RemovePrivate PeerConf::remove_private() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.remove_private)
  return _internal_remove_private();
}
inline void PeerConf::set_remove_private(::apipb::RemovePrivate value) {
  _internal_set_remove_private(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.remove_private)
}
inline ::apipb::RemovePrivate PeerConf::_internal_remove_private() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RemovePrivate>(_impl_.remove_private_);
}
inline void PeerConf::_internal_set_remove_private(::apipb::RemovePrivate value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = value;
}

// bool route_flap_damping = 9;
inline void PeerConf::clear_route_flap_damping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline bool PeerConf::route_flap_damping() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.route_flap_damping)
  return _internal_route_flap_damping();
}
inline void PeerConf::set_route_flap_damping(bool value) {
  _internal_set_route_flap_damping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.route_flap_damping)
}
inline bool PeerConf::_internal_route_flap_damping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_flap_damping_;
}
inline void PeerConf::_internal_set_route_flap_damping(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = value;
}

// uint32 send_community = 10;
inline void PeerConf::clear_send_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t PeerConf::send_community() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.send_community)
  return _internal_send_community();
}
inline void PeerConf::set_send_community(::uint32_t value) {
  _internal_set_send_community(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.send_community)
}
inline ::uint32_t PeerConf::_internal_send_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_community_;
}
inline void PeerConf::_internal_set_send_community(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = value;
}

// string neighbor_interface = 11;
inline void PeerConf::clear_neighbor_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_interface_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& PeerConf::neighbor_interface() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.neighbor_interface)
  return _internal_neighbor_interface();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_neighbor_interface(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.neighbor_interface_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.neighbor_interface)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_neighbor_interface()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_neighbor_interface();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.neighbor_interface)
  return _s;
}
inline const ::std::string& PeerConf::_internal_neighbor_interface() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.neighbor_interface_.Get();
}
inline void PeerConf::_internal_set_neighbor_interface(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_interface_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_neighbor_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.neighbor_interface_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_neighbor_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.neighbor_interface)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.neighbor_interface_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.neighbor_interface_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_neighbor_interface(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.neighbor_interface_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.neighbor_interface_.IsDefault()) {
    _impl_.neighbor_interface_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.neighbor_interface)
}

// string vrf = 12;
inline void PeerConf::clear_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& PeerConf::vrf() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.vrf)
  return _internal_vrf();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerConf::set_vrf(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.vrf_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerConf.vrf)
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::mutable_vrf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_vrf();
  // @@protoc_insertion_point(field_mutable:apipb.PeerConf.vrf)
  return _s;
}
inline const ::std::string& PeerConf::_internal_vrf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.vrf_.Get();
}
inline void PeerConf::_internal_set_vrf(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.vrf_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerConf::_internal_mutable_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.vrf_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerConf::release_vrf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerConf.vrf)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.vrf_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.vrf_.Set("", GetArena());
  }
  return released;
}
inline void PeerConf::set_allocated_vrf(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.vrf_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.vrf_.IsDefault()) {
    _impl_.vrf_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerConf.vrf)
}

// uint32 allow_own_asn = 13;
inline void PeerConf::clear_allow_own_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_own_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::uint32_t PeerConf::allow_own_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.allow_own_asn)
  return _internal_allow_own_asn();
}
inline void PeerConf::set_allow_own_asn(::uint32_t value) {
  _internal_set_allow_own_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.allow_own_asn)
}
inline ::uint32_t PeerConf::_internal_allow_own_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.allow_own_asn_;
}
inline void PeerConf::_internal_set_allow_own_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_own_asn_ = value;
}

// bool replace_peer_asn = 14;
inline void PeerConf::clear_replace_peer_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.replace_peer_asn_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline bool PeerConf::replace_peer_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.replace_peer_asn)
  return _internal_replace_peer_asn();
}
inline void PeerConf::set_replace_peer_asn(bool value) {
  _internal_set_replace_peer_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.replace_peer_asn)
}
inline bool PeerConf::_internal_replace_peer_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.replace_peer_asn_;
}
inline void PeerConf::_internal_set_replace_peer_asn(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.replace_peer_asn_ = value;
}

// bool admin_down = 15;
inline void PeerConf::clear_admin_down() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.admin_down_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline bool PeerConf::admin_down() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.admin_down)
  return _internal_admin_down();
}
inline void PeerConf::set_admin_down(bool value) {
  _internal_set_admin_down(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.admin_down)
}
inline bool PeerConf::_internal_admin_down() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.admin_down_;
}
inline void PeerConf::_internal_set_admin_down(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.admin_down_ = value;
}

// bool send_software_version = 16;
inline void PeerConf::clear_send_software_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_software_version_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline bool PeerConf::send_software_version() const {
  // @@protoc_insertion_point(field_get:apipb.PeerConf.send_software_version)
  return _internal_send_software_version();
}
inline void PeerConf::set_send_software_version(bool value) {
  _internal_set_send_software_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:apipb.PeerConf.send_software_version)
}
inline bool PeerConf::_internal_send_software_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_software_version_;
}
inline void PeerConf::_internal_set_send_software_version(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_software_version_ = value;
}

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

// PeerGroupConf

// string auth_password = 1;
inline void PeerGroupConf::clear_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PeerGroupConf::auth_password() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.auth_password)
  return _internal_auth_password();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupConf::set_auth_password(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.auth_password_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.auth_password)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::mutable_auth_password()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_auth_password();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupConf.auth_password)
  return _s;
}
inline const ::std::string& PeerGroupConf::_internal_auth_password() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.auth_password_.Get();
}
inline void PeerGroupConf::_internal_set_auth_password(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::_internal_mutable_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.auth_password_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupConf::release_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupConf.auth_password)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.auth_password_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupConf::set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.auth_password_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.auth_password_.IsDefault()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupConf.auth_password)
}

// string description = 2;
inline void PeerGroupConf::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PeerGroupConf::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupConf::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.description)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupConf.description)
  return _s;
}
inline const ::std::string& PeerGroupConf::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void PeerGroupConf::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupConf::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupConf.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupConf::set_allocated_description(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupConf.description)
}

// uint32 local_asn = 3;
inline void PeerGroupConf::clear_local_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t PeerGroupConf::local_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.local_asn)
  return _internal_local_asn();
}
inline void PeerGroupConf::set_local_asn(::uint32_t value) {
  _internal_set_local_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.local_asn)
}
inline ::uint32_t PeerGroupConf::_internal_local_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_asn_;
}
inline void PeerGroupConf::_internal_set_local_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = value;
}

// uint32 peer_asn = 4;
inline void PeerGroupConf::clear_peer_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t PeerGroupConf::peer_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.peer_asn)
  return _internal_peer_asn();
}
inline void PeerGroupConf::set_peer_asn(::uint32_t value) {
  _internal_set_peer_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.peer_asn)
}
inline ::uint32_t PeerGroupConf::_internal_peer_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_asn_;
}
inline void PeerGroupConf::_internal_set_peer_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = value;
}

// string peer_group_name = 5;
inline void PeerGroupConf::clear_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PeerGroupConf::peer_group_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.peer_group_name)
  return _internal_peer_group_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupConf::set_peer_group_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.peer_group_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.peer_group_name)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::mutable_peer_group_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_peer_group_name();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupConf.peer_group_name)
  return _s;
}
inline const ::std::string& PeerGroupConf::_internal_peer_group_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_name_.Get();
}
inline void PeerGroupConf::_internal_set_peer_group_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupConf::_internal_mutable_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupConf::release_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupConf.peer_group_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.peer_group_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupConf::set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.peer_group_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_name_.IsDefault()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupConf.peer_group_name)
}

// .apipb.PeerType type = 6;
inline void PeerGroupConf::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::apipb::PeerType PeerGroupConf::type() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.type)
  return _internal_type();
}
inline void PeerGroupConf::set_type(::apipb::PeerType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.type)
}
inline ::apipb::PeerType PeerGroupConf::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerType>(_impl_.type_);
}
inline void PeerGroupConf::_internal_set_type(::apipb::PeerType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// .apipb.RemovePrivate remove_private = 7;
inline void PeerGroupConf::clear_remove_private() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::apipb::RemovePrivate PeerGroupConf::remove_private() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.remove_private)
  return _internal_remove_private();
}
inline void PeerGroupConf::set_remove_private(::apipb::RemovePrivate value) {
  _internal_set_remove_private(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.remove_private)
}
inline ::apipb::RemovePrivate PeerGroupConf::_internal_remove_private() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RemovePrivate>(_impl_.remove_private_);
}
inline void PeerGroupConf::_internal_set_remove_private(::apipb::RemovePrivate value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = value;
}

// bool route_flap_damping = 8;
inline void PeerGroupConf::clear_route_flap_damping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline bool PeerGroupConf::route_flap_damping() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.route_flap_damping)
  return _internal_route_flap_damping();
}
inline void PeerGroupConf::set_route_flap_damping(bool value) {
  _internal_set_route_flap_damping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.route_flap_damping)
}
inline bool PeerGroupConf::_internal_route_flap_damping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_flap_damping_;
}
inline void PeerGroupConf::_internal_set_route_flap_damping(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = value;
}

// uint32 send_community = 9;
inline void PeerGroupConf::clear_send_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint32_t PeerGroupConf::send_community() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupConf.send_community)
  return _internal_send_community();
}
inline void PeerGroupConf::set_send_community(::uint32_t value) {
  _internal_set_send_community(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupConf.send_community)
}
inline ::uint32_t PeerGroupConf::_internal_send_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_community_;
}
inline void PeerGroupConf::_internal_set_send_community(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = value;
}

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

// PeerGroupState

// string auth_password = 1;
inline void PeerGroupState::clear_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PeerGroupState::auth_password() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.auth_password)
  return _internal_auth_password();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupState::set_auth_password(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.auth_password_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.auth_password)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::mutable_auth_password()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_auth_password();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupState.auth_password)
  return _s;
}
inline const ::std::string& PeerGroupState::_internal_auth_password() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.auth_password_.Get();
}
inline void PeerGroupState::_internal_set_auth_password(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::_internal_mutable_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.auth_password_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupState::release_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupState.auth_password)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.auth_password_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupState::set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.auth_password_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.auth_password_.IsDefault()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupState.auth_password)
}

// string description = 2;
inline void PeerGroupState::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PeerGroupState::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupState::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.description)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupState.description)
  return _s;
}
inline const ::std::string& PeerGroupState::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void PeerGroupState::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupState::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupState.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupState::set_allocated_description(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupState.description)
}

// uint32 local_asn = 3;
inline void PeerGroupState::clear_local_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t PeerGroupState::local_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.local_asn)
  return _internal_local_asn();
}
inline void PeerGroupState::set_local_asn(::uint32_t value) {
  _internal_set_local_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.local_asn)
}
inline ::uint32_t PeerGroupState::_internal_local_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_asn_;
}
inline void PeerGroupState::_internal_set_local_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = value;
}

// uint32 peer_asn = 4;
inline void PeerGroupState::clear_peer_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t PeerGroupState::peer_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.peer_asn)
  return _internal_peer_asn();
}
inline void PeerGroupState::set_peer_asn(::uint32_t value) {
  _internal_set_peer_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.peer_asn)
}
inline ::uint32_t PeerGroupState::_internal_peer_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_asn_;
}
inline void PeerGroupState::_internal_set_peer_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = value;
}

// string peer_group_name = 5;
inline void PeerGroupState::clear_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PeerGroupState::peer_group_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.peer_group_name)
  return _internal_peer_group_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerGroupState::set_peer_group_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.peer_group_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.peer_group_name)
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::mutable_peer_group_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_peer_group_name();
  // @@protoc_insertion_point(field_mutable:apipb.PeerGroupState.peer_group_name)
  return _s;
}
inline const ::std::string& PeerGroupState::_internal_peer_group_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_name_.Get();
}
inline void PeerGroupState::_internal_set_peer_group_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerGroupState::_internal_mutable_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerGroupState::release_peer_group_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerGroupState.peer_group_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.peer_group_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  return released;
}
inline void PeerGroupState::set_allocated_peer_group_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.peer_group_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_name_.IsDefault()) {
    _impl_.peer_group_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerGroupState.peer_group_name)
}

// .apipb.PeerType type = 6;
inline void PeerGroupState::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::apipb::PeerType PeerGroupState::type() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.type)
  return _internal_type();
}
inline void PeerGroupState::set_type(::apipb::PeerType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.type)
}
inline ::apipb::PeerType PeerGroupState::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerType>(_impl_.type_);
}
inline void PeerGroupState::_internal_set_type(::apipb::PeerType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// .apipb.RemovePrivate remove_private = 7;
inline void PeerGroupState::clear_remove_private() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::apipb::RemovePrivate PeerGroupState::remove_private() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.remove_private)
  return _internal_remove_private();
}
inline void PeerGroupState::set_remove_private(::apipb::RemovePrivate value) {
  _internal_set_remove_private(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.remove_private)
}
inline ::apipb::RemovePrivate PeerGroupState::_internal_remove_private() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RemovePrivate>(_impl_.remove_private_);
}
inline void PeerGroupState::_internal_set_remove_private(::apipb::RemovePrivate value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = value;
}

// bool route_flap_damping = 8;
inline void PeerGroupState::clear_route_flap_damping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline bool PeerGroupState::route_flap_damping() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.route_flap_damping)
  return _internal_route_flap_damping();
}
inline void PeerGroupState::set_route_flap_damping(bool value) {
  _internal_set_route_flap_damping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.route_flap_damping)
}
inline bool PeerGroupState::_internal_route_flap_damping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_flap_damping_;
}
inline void PeerGroupState::_internal_set_route_flap_damping(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = value;
}

// uint32 send_community = 9;
inline void PeerGroupState::clear_send_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint32_t PeerGroupState::send_community() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.send_community)
  return _internal_send_community();
}
inline void PeerGroupState::set_send_community(::uint32_t value) {
  _internal_set_send_community(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.send_community)
}
inline ::uint32_t PeerGroupState::_internal_send_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_community_;
}
inline void PeerGroupState::_internal_set_send_community(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = value;
}

// uint32 total_paths = 10;
inline void PeerGroupState::clear_total_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_paths_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t PeerGroupState::total_paths() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.total_paths)
  return _internal_total_paths();
}
inline void PeerGroupState::set_total_paths(::uint32_t value) {
  _internal_set_total_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.total_paths)
}
inline ::uint32_t PeerGroupState::_internal_total_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_paths_;
}
inline void PeerGroupState::_internal_set_total_paths(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_paths_ = value;
}

// uint32 total_prefixes = 11;
inline void PeerGroupState::clear_total_prefixes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_prefixes_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t PeerGroupState::total_prefixes() const {
  // @@protoc_insertion_point(field_get:apipb.PeerGroupState.total_prefixes)
  return _internal_total_prefixes();
}
inline void PeerGroupState::set_total_prefixes(::uint32_t value) {
  _internal_set_total_prefixes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.PeerGroupState.total_prefixes)
}
inline ::uint32_t PeerGroupState::_internal_total_prefixes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_prefixes_;
}
inline void PeerGroupState::_internal_set_total_prefixes(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_prefixes_ = value;
}

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

// TtlSecurity

// bool enabled = 1;
inline void TtlSecurity::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool TtlSecurity::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.TtlSecurity.enabled)
  return _internal_enabled();
}
inline void TtlSecurity::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.TtlSecurity.enabled)
}
inline bool TtlSecurity::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void TtlSecurity::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint32 ttl_min = 2;
inline void TtlSecurity::clear_ttl_min() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ttl_min_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t TtlSecurity::ttl_min() const {
  // @@protoc_insertion_point(field_get:apipb.TtlSecurity.ttl_min)
  return _internal_ttl_min();
}
inline void TtlSecurity::set_ttl_min(::uint32_t value) {
  _internal_set_ttl_min(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.TtlSecurity.ttl_min)
}
inline ::uint32_t TtlSecurity::_internal_ttl_min() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ttl_min_;
}
inline void TtlSecurity::_internal_set_ttl_min(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ttl_min_ = value;
}

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

// EbgpMultihop

// bool enabled = 1;
inline void EbgpMultihop::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool EbgpMultihop::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpMultihop.enabled)
  return _internal_enabled();
}
inline void EbgpMultihop::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.EbgpMultihop.enabled)
}
inline bool EbgpMultihop::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void EbgpMultihop::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint32 multihop_ttl = 2;
inline void EbgpMultihop::clear_multihop_ttl() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multihop_ttl_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t EbgpMultihop::multihop_ttl() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpMultihop.multihop_ttl)
  return _internal_multihop_ttl();
}
inline void EbgpMultihop::set_multihop_ttl(::uint32_t value) {
  _internal_set_multihop_ttl(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.EbgpMultihop.multihop_ttl)
}
inline ::uint32_t EbgpMultihop::_internal_multihop_ttl() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.multihop_ttl_;
}
inline void EbgpMultihop::_internal_set_multihop_ttl(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multihop_ttl_ = value;
}

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

// RouteReflector

// bool route_reflector_client = 1;
inline void RouteReflector::clear_route_reflector_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_reflector_client_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool RouteReflector::route_reflector_client() const {
  // @@protoc_insertion_point(field_get:apipb.RouteReflector.route_reflector_client)
  return _internal_route_reflector_client();
}
inline void RouteReflector::set_route_reflector_client(bool value) {
  _internal_set_route_reflector_client(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.RouteReflector.route_reflector_client)
}
inline bool RouteReflector::_internal_route_reflector_client() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_reflector_client_;
}
inline void RouteReflector::_internal_set_route_reflector_client(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_reflector_client_ = value;
}

// string route_reflector_cluster_id = 2;
inline void RouteReflector::clear_route_reflector_cluster_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_reflector_cluster_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& RouteReflector::route_reflector_cluster_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RouteReflector.route_reflector_cluster_id)
  return _internal_route_reflector_cluster_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void RouteReflector::set_route_reflector_cluster_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.route_reflector_cluster_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.RouteReflector.route_reflector_cluster_id)
}
inline ::std::string* PROTOBUF_NONNULL RouteReflector::mutable_route_reflector_cluster_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_route_reflector_cluster_id();
  // @@protoc_insertion_point(field_mutable:apipb.RouteReflector.route_reflector_cluster_id)
  return _s;
}
inline const ::std::string& RouteReflector::_internal_route_reflector_cluster_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_reflector_cluster_id_.Get();
}
inline void RouteReflector::_internal_set_route_reflector_cluster_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_reflector_cluster_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL RouteReflector::_internal_mutable_route_reflector_cluster_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.route_reflector_cluster_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE RouteReflector::release_route_reflector_cluster_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RouteReflector.route_reflector_cluster_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.route_reflector_cluster_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.route_reflector_cluster_id_.Set("", GetArena());
  }
  return released;
}
inline void RouteReflector::set_allocated_route_reflector_cluster_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.route_reflector_cluster_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.route_reflector_cluster_id_.IsDefault()) {
    _impl_.route_reflector_cluster_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.RouteReflector.route_reflector_cluster_id)
}

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

// PeerState

// string auth_password = 1;
inline void PeerState::clear_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PeerState::auth_password() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.auth_password)
  return _internal_auth_password();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerState::set_auth_password(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.auth_password_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerState.auth_password)
}
inline ::std::string* PROTOBUF_NONNULL PeerState::mutable_auth_password()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_auth_password();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.auth_password)
  return _s;
}
inline const ::std::string& PeerState::_internal_auth_password() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.auth_password_.Get();
}
inline void PeerState::_internal_set_auth_password(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.auth_password_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerState::_internal_mutable_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.auth_password_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerState::release_auth_password() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.auth_password)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.auth_password_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  return released;
}
inline void PeerState::set_allocated_auth_password(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.auth_password_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.auth_password_.IsDefault()) {
    _impl_.auth_password_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.auth_password)
}

// string description = 2;
inline void PeerState::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& PeerState::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerState::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerState.description)
}
inline ::std::string* PROTOBUF_NONNULL PeerState::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.description)
  return _s;
}
inline const ::std::string& PeerState::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void PeerState::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerState::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerState::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void PeerState::set_allocated_description(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.description)
}

// uint32 local_asn = 3;
inline void PeerState::clear_local_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t PeerState::local_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.local_asn)
  return _internal_local_asn();
}
inline void PeerState::set_local_asn(::uint32_t value) {
  _internal_set_local_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.local_asn)
}
inline ::uint32_t PeerState::_internal_local_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_asn_;
}
inline void PeerState::_internal_set_local_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_asn_ = value;
}

// .apipb.Messages messages = 4;
inline bool PeerState::has_messages() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.messages_ != nullptr);
  return value;
}
inline void PeerState::clear_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.messages_ != nullptr) _impl_.messages_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::Messages& PeerState::_internal_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Messages* p = _impl_.messages_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Messages>(&::apipb::Messages_globals_);
}
inline const ::apipb::Messages& PeerState::messages() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.messages)
  return _internal_messages();
}
inline void PeerState::unsafe_arena_set_allocated_messages(
    ::apipb::Messages* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.messages_);
  }
  _impl_.messages_ = reinterpret_cast<::apipb::Messages*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerState.messages)
}
inline ::apipb::Messages* PROTOBUF_NULLABLE PeerState::release_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Messages* released = _impl_.messages_;
  _impl_.messages_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Messages* PROTOBUF_NULLABLE PeerState::unsafe_arena_release_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.messages)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Messages* temp = _impl_.messages_;
  _impl_.messages_ = nullptr;
  return temp;
}
inline ::apipb::Messages* PROTOBUF_NONNULL PeerState::_internal_mutable_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.messages_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Messages>(GetArena());
    _impl_.messages_ = reinterpret_cast<::apipb::Messages*>(p);
  }
  return _impl_.messages_;
}
inline ::apipb::Messages* PROTOBUF_NONNULL PeerState::mutable_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::Messages* _msg = _internal_mutable_messages();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.messages)
  return _msg;
}
inline void PeerState::set_allocated_messages(::apipb::Messages* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.messages_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.messages_ = reinterpret_cast<::apipb::Messages*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.messages)
}

// string neighbor_address = 5;
inline void PeerState::clear_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& PeerState::neighbor_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.neighbor_address)
  return _internal_neighbor_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerState::set_neighbor_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.neighbor_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerState.neighbor_address)
}
inline ::std::string* PROTOBUF_NONNULL PeerState::mutable_neighbor_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_neighbor_address();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.neighbor_address)
  return _s;
}
inline const ::std::string& PeerState::_internal_neighbor_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.neighbor_address_.Get();
}
inline void PeerState::_internal_set_neighbor_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.neighbor_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerState::_internal_mutable_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.neighbor_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerState::release_neighbor_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.neighbor_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.neighbor_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.neighbor_address_.Set("", GetArena());
  }
  return released;
}
inline void PeerState::set_allocated_neighbor_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.neighbor_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.neighbor_address_.IsDefault()) {
    _impl_.neighbor_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.neighbor_address)
}

// uint32 peer_asn = 6;
inline void PeerState::clear_peer_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t PeerState::peer_asn() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.peer_asn)
  return _internal_peer_asn();
}
inline void PeerState::set_peer_asn(::uint32_t value) {
  _internal_set_peer_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.peer_asn)
}
inline ::uint32_t PeerState::_internal_peer_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_asn_;
}
inline void PeerState::_internal_set_peer_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_asn_ = value;
}

// string peer_group = 7;
inline void PeerState::clear_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& PeerState::peer_group() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.peer_group)
  return _internal_peer_group();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerState::set_peer_group(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.peer_group_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerState.peer_group)
}
inline ::std::string* PROTOBUF_NONNULL PeerState::mutable_peer_group()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_peer_group();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.peer_group)
  return _s;
}
inline const ::std::string& PeerState::_internal_peer_group() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_group_.Get();
}
inline void PeerState::_internal_set_peer_group(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_group_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerState::_internal_mutable_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.peer_group_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerState::release_peer_group() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.peer_group)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.peer_group_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  return released;
}
inline void PeerState::set_allocated_peer_group(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.peer_group_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.peer_group_.IsDefault()) {
    _impl_.peer_group_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.peer_group)
}

// .apipb.PeerType type = 8;
inline void PeerState::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::apipb::PeerType PeerState::type() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.type)
  return _internal_type();
}
inline void PeerState::set_type(::apipb::PeerType value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.type)
}
inline ::apipb::PeerType PeerState::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerType>(_impl_.type_);
}
inline void PeerState::_internal_set_type(::apipb::PeerType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// .apipb.Queues queues = 9;
inline bool PeerState::has_queues() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.queues_ != nullptr);
  return value;
}
inline void PeerState::clear_queues() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.queues_ != nullptr) _impl_.queues_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::Queues& PeerState::_internal_queues() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Queues* p = _impl_.queues_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Queues>(&::apipb::Queues_globals_);
}
inline const ::apipb::Queues& PeerState::queues() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.queues)
  return _internal_queues();
}
inline void PeerState::unsafe_arena_set_allocated_queues(
    ::apipb::Queues* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.queues_);
  }
  _impl_.queues_ = reinterpret_cast<::apipb::Queues*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.PeerState.queues)
}
inline ::apipb::Queues* PROTOBUF_NULLABLE PeerState::release_queues() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Queues* released = _impl_.queues_;
  _impl_.queues_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Queues* PROTOBUF_NULLABLE PeerState::unsafe_arena_release_queues() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.queues)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Queues* temp = _impl_.queues_;
  _impl_.queues_ = nullptr;
  return temp;
}
inline ::apipb::Queues* PROTOBUF_NONNULL PeerState::_internal_mutable_queues() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.queues_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Queues>(GetArena());
    _impl_.queues_ = reinterpret_cast<::apipb::Queues*>(p);
  }
  return _impl_.queues_;
}
inline ::apipb::Queues* PROTOBUF_NONNULL PeerState::mutable_queues()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::Queues* _msg = _internal_mutable_queues();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.queues)
  return _msg;
}
inline void PeerState::set_allocated_queues(::apipb::Queues* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.queues_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.queues_ = reinterpret_cast<::apipb::Queues*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.queues)
}

// .apipb.RemovePrivate remove_private = 10;
inline void PeerState::clear_remove_private() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::apipb::RemovePrivate PeerState::remove_private() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.remove_private)
  return _internal_remove_private();
}
inline void PeerState::set_remove_private(::apipb::RemovePrivate value) {
  _internal_set_remove_private(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.remove_private)
}
inline ::apipb::RemovePrivate PeerState::_internal_remove_private() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RemovePrivate>(_impl_.remove_private_);
}
inline void PeerState::_internal_set_remove_private(::apipb::RemovePrivate value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remove_private_ = value;
}

// bool route_flap_damping = 11;
inline void PeerState::clear_route_flap_damping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline bool PeerState::route_flap_damping() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.route_flap_damping)
  return _internal_route_flap_damping();
}
inline void PeerState::set_route_flap_damping(bool value) {
  _internal_set_route_flap_damping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.route_flap_damping)
}
inline bool PeerState::_internal_route_flap_damping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_flap_damping_;
}
inline void PeerState::_internal_set_route_flap_damping(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_flap_damping_ = value;
}

// uint32 send_community = 12;
inline void PeerState::clear_send_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::uint32_t PeerState::send_community() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.send_community)
  return _internal_send_community();
}
inline void PeerState::set_send_community(::uint32_t value) {
  _internal_set_send_community(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.send_community)
}
inline ::uint32_t PeerState::_internal_send_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_community_;
}
inline void PeerState::_internal_set_send_community(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_community_ = value;
}

// .apipb.PeerState.SessionState session_state = 13;
inline void PeerState::clear_session_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.session_state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline ::apipb::PeerState_SessionState PeerState::session_state() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.session_state)
  return _internal_session_state();
}
inline void PeerState::set_session_state(::apipb::PeerState_SessionState value) {
  _internal_set_session_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.session_state)
}
inline ::apipb::PeerState_SessionState PeerState::_internal_session_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerState_SessionState>(_impl_.session_state_);
}
inline void PeerState::_internal_set_session_state(::apipb::PeerState_SessionState value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.session_state_ = value;
}

// .apipb.PeerState.AdminState admin_state = 15;
inline void PeerState::clear_admin_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.admin_state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline ::apipb::PeerState_AdminState PeerState::admin_state() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.admin_state)
  return _internal_admin_state();
}
inline void PeerState::set_admin_state(::apipb::PeerState_AdminState value) {
  _internal_set_admin_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.admin_state)
}
inline ::apipb::PeerState_AdminState PeerState::_internal_admin_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PeerState_AdminState>(_impl_.admin_state_);
}
inline void PeerState::_internal_set_admin_state(::apipb::PeerState_AdminState value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.admin_state_ = value;
}

// uint32 out_q = 16;
inline void PeerState::clear_out_q() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_q_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
inline ::uint32_t PeerState::out_q() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.out_q)
  return _internal_out_q();
}
inline void PeerState::set_out_q(::uint32_t value) {
  _internal_set_out_q(value);
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.out_q)
}
inline ::uint32_t PeerState::_internal_out_q() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.out_q_;
}
inline void PeerState::_internal_set_out_q(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_q_ = value;
}

// uint32 flops = 17;
inline void PeerState::clear_flops() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.flops_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
inline ::uint32_t PeerState::flops() const {
  // @@protoc_insertion_point(field_get:apipb.PeerState.flops)
  return _internal_flops();
}
inline void PeerState::set_flops(::uint32_t value) {
  _internal_set_flops(value);
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  // @@protoc_insertion_point(field_set:apipb.PeerState.flops)
}
inline ::uint32_t PeerState::_internal_flops() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.flops_;
}
inline void PeerState::_internal_set_flops(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.flops_ = value;
}

// repeated .google.protobuf.Any remote_cap = 18;
inline int PeerState::_internal_remote_cap_size() const {
  return _internal_remote_cap().size();
}
inline int PeerState::remote_cap_size() const {
  return _internal_remote_cap_size();
}
inline const ::google::protobuf::Any& PeerState::remote_cap(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.remote_cap)
  return _internal_remote_cap().Get(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL PeerState::mutable_remote_cap(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.remote_cap)
  return _internal_mutable_remote_cap()->Mutable(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL PeerState::add_remote_cap()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::Any* _add =
      _internal_mutable_remote_cap()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.PeerState.remote_cap)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& PeerState::remote_cap() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.PeerState.remote_cap)
  return _internal_remote_cap();
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
PeerState::mutable_remote_cap() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.PeerState.remote_cap)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_remote_cap();
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
PeerState::_internal_remote_cap() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_cap_;
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
PeerState::_internal_mutable_remote_cap() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.remote_cap_;
}

// repeated .google.protobuf.Any local_cap = 19;
inline int PeerState::_internal_local_cap_size() const {
  return _internal_local_cap().size();
}
inline int PeerState::local_cap_size() const {
  return _internal_local_cap_size();
}
inline const ::google::protobuf::Any& PeerState::local_cap(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.local_cap)
  return _internal_local_cap().Get(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL PeerState::mutable_local_cap(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.local_cap)
  return _internal_mutable_local_cap()->Mutable(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL PeerState::add_local_cap()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::Any* _add =
      _internal_mutable_local_cap()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.PeerState.local_cap)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& PeerState::local_cap() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.PeerState.local_cap)
  return _internal_local_cap();
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
PeerState::mutable_local_cap() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.PeerState.local_cap)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_local_cap();
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
PeerState::_internal_local_cap() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_cap_;
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
PeerState::_internal_mutable_local_cap() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.local_cap_;
}

// string router_id = 20;
inline void PeerState::clear_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.router_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::std::string& PeerState::router_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PeerState.router_id)
  return _internal_router_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PeerState::set_router_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  _impl_.router_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PeerState.router_id)
}
inline ::std::string* PROTOBUF_NONNULL PeerState::mutable_router_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::std::string* _s = _internal_mutable_router_id();
  // @@protoc_insertion_point(field_mutable:apipb.PeerState.router_id)
  return _s;
}
inline const ::std::string& PeerState::_internal_router_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.router_id_.Get();
}
inline void PeerState::_internal_set_router_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.router_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PeerState::_internal_mutable_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.router_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PeerState::release_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PeerState.router_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000040U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  auto* released = _impl_.router_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.router_id_.Set("", GetArena());
  }
  return released;
}
inline void PeerState::set_allocated_router_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  _impl_.router_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.router_id_.IsDefault()) {
    _impl_.router_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PeerState.router_id)
}

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

// Messages

// .apipb.Message received = 1;
inline bool Messages::has_received() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.received_ != nullptr);
  return value;
}
inline void Messages::clear_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.received_ != nullptr) _impl_.received_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Message& Messages::_internal_received() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Message* p = _impl_.received_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Message>(&::apipb::Message_globals_);
}
inline const ::apipb::Message& Messages::received() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Messages.received)
  return _internal_received();
}
inline void Messages::unsafe_arena_set_allocated_received(
    ::apipb::Message* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.received_);
  }
  _impl_.received_ = reinterpret_cast<::apipb::Message*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Messages.received)
}
inline ::apipb::Message* PROTOBUF_NULLABLE Messages::release_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Message* released = _impl_.received_;
  _impl_.received_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Message* PROTOBUF_NULLABLE Messages::unsafe_arena_release_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Messages.received)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Message* temp = _impl_.received_;
  _impl_.received_ = nullptr;
  return temp;
}
inline ::apipb::Message* PROTOBUF_NONNULL Messages::_internal_mutable_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.received_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Message>(GetArena());
    _impl_.received_ = reinterpret_cast<::apipb::Message*>(p);
  }
  return _impl_.received_;
}
inline ::apipb::Message* PROTOBUF_NONNULL Messages::mutable_received()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Message* _msg = _internal_mutable_received();
  // @@protoc_insertion_point(field_mutable:apipb.Messages.received)
  return _msg;
}
inline void Messages::set_allocated_received(::apipb::Message* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.received_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.received_ = reinterpret_cast<::apipb::Message*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Messages.received)
}

// .apipb.Message sent = 2;
inline bool Messages::has_sent() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.sent_ != nullptr);
  return value;
}
inline void Messages::clear_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sent_ != nullptr) _impl_.sent_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Message& Messages::_internal_sent() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Message* p = _impl_.sent_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Message>(&::apipb::Message_globals_);
}
inline const ::apipb::Message& Messages::sent() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Messages.sent)
  return _internal_sent();
}
inline void Messages::unsafe_arena_set_allocated_sent(
    ::apipb::Message* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.sent_);
  }
  _impl_.sent_ = reinterpret_cast<::apipb::Message*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Messages.sent)
}
inline ::apipb::Message* PROTOBUF_NULLABLE Messages::release_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Message* released = _impl_.sent_;
  _impl_.sent_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Message* PROTOBUF_NULLABLE Messages::unsafe_arena_release_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Messages.sent)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Message* temp = _impl_.sent_;
  _impl_.sent_ = nullptr;
  return temp;
}
inline ::apipb::Message* PROTOBUF_NONNULL Messages::_internal_mutable_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sent_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Message>(GetArena());
    _impl_.sent_ = reinterpret_cast<::apipb::Message*>(p);
  }
  return _impl_.sent_;
}
inline ::apipb::Message* PROTOBUF_NONNULL Messages::mutable_sent()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Message* _msg = _internal_mutable_sent();
  // @@protoc_insertion_point(field_mutable:apipb.Messages.sent)
  return _msg;
}
inline void Messages::set_allocated_sent(::apipb::Message* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.sent_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.sent_ = reinterpret_cast<::apipb::Message*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Messages.sent)
}

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

// Message

// uint64 notification = 1;
inline void Message::clear_notification() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t Message::notification() const {
  // @@protoc_insertion_point(field_get:apipb.Message.notification)
  return _internal_notification();
}
inline void Message::set_notification(::uint64_t value) {
  _internal_set_notification(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.Message.notification)
}
inline ::uint64_t Message::_internal_notification() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.notification_;
}
inline void Message::_internal_set_notification(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_ = value;
}

// uint64 update = 2;
inline void Message::clear_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.update_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t Message::update() const {
  // @@protoc_insertion_point(field_get:apipb.Message.update)
  return _internal_update();
}
inline void Message::set_update(::uint64_t value) {
  _internal_set_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.Message.update)
}
inline ::uint64_t Message::_internal_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.update_;
}
inline void Message::_internal_set_update(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.update_ = value;
}

// uint64 open = 3;
inline void Message::clear_open() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.open_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t Message::open() const {
  // @@protoc_insertion_point(field_get:apipb.Message.open)
  return _internal_open();
}
inline void Message::set_open(::uint64_t value) {
  _internal_set_open(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.Message.open)
}
inline ::uint64_t Message::_internal_open() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.open_;
}
inline void Message::_internal_set_open(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.open_ = value;
}

// uint64 keepalive = 4;
inline void Message::clear_keepalive() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t Message::keepalive() const {
  // @@protoc_insertion_point(field_get:apipb.Message.keepalive)
  return _internal_keepalive();
}
inline void Message::set_keepalive(::uint64_t value) {
  _internal_set_keepalive(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.Message.keepalive)
}
inline ::uint64_t Message::_internal_keepalive() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.keepalive_;
}
inline void Message::_internal_set_keepalive(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_ = value;
}

// uint64 refresh = 5;
inline void Message::clear_refresh() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.refresh_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t Message::refresh() const {
  // @@protoc_insertion_point(field_get:apipb.Message.refresh)
  return _internal_refresh();
}
inline void Message::set_refresh(::uint64_t value) {
  _internal_set_refresh(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.Message.refresh)
}
inline ::uint64_t Message::_internal_refresh() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.refresh_;
}
inline void Message::_internal_set_refresh(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.refresh_ = value;
}

// uint64 discarded = 6;
inline void Message::clear_discarded() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.discarded_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint64_t Message::discarded() const {
  // @@protoc_insertion_point(field_get:apipb.Message.discarded)
  return _internal_discarded();
}
inline void Message::set_discarded(::uint64_t value) {
  _internal_set_discarded(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.Message.discarded)
}
inline ::uint64_t Message::_internal_discarded() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.discarded_;
}
inline void Message::_internal_set_discarded(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.discarded_ = value;
}

// uint64 total = 7;
inline void Message::clear_total() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t Message::total() const {
  // @@protoc_insertion_point(field_get:apipb.Message.total)
  return _internal_total();
}
inline void Message::set_total(::uint64_t value) {
  _internal_set_total(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.Message.total)
}
inline ::uint64_t Message::_internal_total() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_;
}
inline void Message::_internal_set_total(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_ = value;
}

// uint64 withdraw_update = 8;
inline void Message::clear_withdraw_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.withdraw_update_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint64_t Message::withdraw_update() const {
  // @@protoc_insertion_point(field_get:apipb.Message.withdraw_update)
  return _internal_withdraw_update();
}
inline void Message::set_withdraw_update(::uint64_t value) {
  _internal_set_withdraw_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.Message.withdraw_update)
}
inline ::uint64_t Message::_internal_withdraw_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.withdraw_update_;
}
inline void Message::_internal_set_withdraw_update(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.withdraw_update_ = value;
}

// uint64 withdraw_prefix = 9;
inline void Message::clear_withdraw_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.withdraw_prefix_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint64_t Message::withdraw_prefix() const {
  // @@protoc_insertion_point(field_get:apipb.Message.withdraw_prefix)
  return _internal_withdraw_prefix();
}
inline void Message::set_withdraw_prefix(::uint64_t value) {
  _internal_set_withdraw_prefix(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.Message.withdraw_prefix)
}
inline ::uint64_t Message::_internal_withdraw_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.withdraw_prefix_;
}
inline void Message::_internal_set_withdraw_prefix(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.withdraw_prefix_ = value;
}

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

// Queues

// uint32 input = 1;
inline void Queues::clear_input() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.input_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t Queues::input() const {
  // @@protoc_insertion_point(field_get:apipb.Queues.input)
  return _internal_input();
}
inline void Queues::set_input(::uint32_t value) {
  _internal_set_input(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.Queues.input)
}
inline ::uint32_t Queues::_internal_input() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.input_;
}
inline void Queues::_internal_set_input(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.input_ = value;
}

// uint32 output = 2;
inline void Queues::clear_output() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.output_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t Queues::output() const {
  // @@protoc_insertion_point(field_get:apipb.Queues.output)
  return _internal_output();
}
inline void Queues::set_output(::uint32_t value) {
  _internal_set_output(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.Queues.output)
}
inline ::uint32_t Queues::_internal_output() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.output_;
}
inline void Queues::_internal_set_output(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.output_ = value;
}

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

// Timers

// .apipb.TimersConfig config = 1;
inline bool Timers::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void Timers::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::TimersConfig& Timers::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::TimersConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::TimersConfig>(&::apipb::TimersConfig_globals_);
}
inline const ::apipb::TimersConfig& Timers::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Timers.config)
  return _internal_config();
}
inline void Timers::unsafe_arena_set_allocated_config(
    ::apipb::TimersConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::TimersConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Timers.config)
}
inline ::apipb::TimersConfig* PROTOBUF_NULLABLE Timers::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::TimersConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::TimersConfig* PROTOBUF_NULLABLE Timers::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Timers.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::TimersConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::TimersConfig* PROTOBUF_NONNULL Timers::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::TimersConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::TimersConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::TimersConfig* PROTOBUF_NONNULL Timers::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::TimersConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.Timers.config)
  return _msg;
}
inline void Timers::set_allocated_config(::apipb::TimersConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::TimersConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Timers.config)
}

// .apipb.TimersState state = 2;
inline bool Timers::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void Timers::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::TimersState& Timers::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::TimersState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::TimersState>(&::apipb::TimersState_globals_);
}
inline const ::apipb::TimersState& Timers::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Timers.state)
  return _internal_state();
}
inline void Timers::unsafe_arena_set_allocated_state(
    ::apipb::TimersState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::TimersState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Timers.state)
}
inline ::apipb::TimersState* PROTOBUF_NULLABLE Timers::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::TimersState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::TimersState* PROTOBUF_NULLABLE Timers::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Timers.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::TimersState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::TimersState* PROTOBUF_NONNULL Timers::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::TimersState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::TimersState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::TimersState* PROTOBUF_NONNULL Timers::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::TimersState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.Timers.state)
  return _msg;
}
inline void Timers::set_allocated_state(::apipb::TimersState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::TimersState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Timers.state)
}

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

// TimersConfig

// uint64 connect_retry = 1;
inline void TimersConfig::clear_connect_retry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connect_retry_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t TimersConfig::connect_retry() const {
  // @@protoc_insertion_point(field_get:apipb.TimersConfig.connect_retry)
  return _internal_connect_retry();
}
inline void TimersConfig::set_connect_retry(::uint64_t value) {
  _internal_set_connect_retry(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.TimersConfig.connect_retry)
}
inline ::uint64_t TimersConfig::_internal_connect_retry() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.connect_retry_;
}
inline void TimersConfig::_internal_set_connect_retry(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connect_retry_ = value;
}

// uint64 hold_time = 2;
inline void TimersConfig::clear_hold_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hold_time_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t TimersConfig::hold_time() const {
  // @@protoc_insertion_point(field_get:apipb.TimersConfig.hold_time)
  return _internal_hold_time();
}
inline void TimersConfig::set_hold_time(::uint64_t value) {
  _internal_set_hold_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.TimersConfig.hold_time)
}
inline ::uint64_t TimersConfig::_internal_hold_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.hold_time_;
}
inline void TimersConfig::_internal_set_hold_time(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hold_time_ = value;
}

// uint64 keepalive_interval = 3;
inline void TimersConfig::clear_keepalive_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t TimersConfig::keepalive_interval() const {
  // @@protoc_insertion_point(field_get:apipb.TimersConfig.keepalive_interval)
  return _internal_keepalive_interval();
}
inline void TimersConfig::set_keepalive_interval(::uint64_t value) {
  _internal_set_keepalive_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.TimersConfig.keepalive_interval)
}
inline ::uint64_t TimersConfig::_internal_keepalive_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.keepalive_interval_;
}
inline void TimersConfig::_internal_set_keepalive_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_interval_ = value;
}

// uint64 minimum_advertisement_interval = 4;
inline void TimersConfig::clear_minimum_advertisement_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_advertisement_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t TimersConfig::minimum_advertisement_interval() const {
  // @@protoc_insertion_point(field_get:apipb.TimersConfig.minimum_advertisement_interval)
  return _internal_minimum_advertisement_interval();
}
inline void TimersConfig::set_minimum_advertisement_interval(::uint64_t value) {
  _internal_set_minimum_advertisement_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.TimersConfig.minimum_advertisement_interval)
}
inline ::uint64_t TimersConfig::_internal_minimum_advertisement_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_advertisement_interval_;
}
inline void TimersConfig::_internal_set_minimum_advertisement_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_advertisement_interval_ = value;
}

// uint64 idle_hold_time_after_reset = 5;
inline void TimersConfig::clear_idle_hold_time_after_reset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.idle_hold_time_after_reset_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t TimersConfig::idle_hold_time_after_reset() const {
  // @@protoc_insertion_point(field_get:apipb.TimersConfig.idle_hold_time_after_reset)
  return _internal_idle_hold_time_after_reset();
}
inline void TimersConfig::set_idle_hold_time_after_reset(::uint64_t value) {
  _internal_set_idle_hold_time_after_reset(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.TimersConfig.idle_hold_time_after_reset)
}
inline ::uint64_t TimersConfig::_internal_idle_hold_time_after_reset() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.idle_hold_time_after_reset_;
}
inline void TimersConfig::_internal_set_idle_hold_time_after_reset(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.idle_hold_time_after_reset_ = value;
}

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

// TimersState

// uint64 connect_retry = 1;
inline void TimersState::clear_connect_retry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connect_retry_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t TimersState::connect_retry() const {
  // @@protoc_insertion_point(field_get:apipb.TimersState.connect_retry)
  return _internal_connect_retry();
}
inline void TimersState::set_connect_retry(::uint64_t value) {
  _internal_set_connect_retry(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.TimersState.connect_retry)
}
inline ::uint64_t TimersState::_internal_connect_retry() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.connect_retry_;
}
inline void TimersState::_internal_set_connect_retry(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connect_retry_ = value;
}

// uint64 hold_time = 2;
inline void TimersState::clear_hold_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hold_time_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t TimersState::hold_time() const {
  // @@protoc_insertion_point(field_get:apipb.TimersState.hold_time)
  return _internal_hold_time();
}
inline void TimersState::set_hold_time(::uint64_t value) {
  _internal_set_hold_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.TimersState.hold_time)
}
inline ::uint64_t TimersState::_internal_hold_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.hold_time_;
}
inline void TimersState::_internal_set_hold_time(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hold_time_ = value;
}

// uint64 keepalive_interval = 3;
inline void TimersState::clear_keepalive_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t TimersState::keepalive_interval() const {
  // @@protoc_insertion_point(field_get:apipb.TimersState.keepalive_interval)
  return _internal_keepalive_interval();
}
inline void TimersState::set_keepalive_interval(::uint64_t value) {
  _internal_set_keepalive_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.TimersState.keepalive_interval)
}
inline ::uint64_t TimersState::_internal_keepalive_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.keepalive_interval_;
}
inline void TimersState::_internal_set_keepalive_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.keepalive_interval_ = value;
}

// uint64 minimum_advertisement_interval = 4;
inline void TimersState::clear_minimum_advertisement_interval() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_advertisement_interval_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint64_t TimersState::minimum_advertisement_interval() const {
  // @@protoc_insertion_point(field_get:apipb.TimersState.minimum_advertisement_interval)
  return _internal_minimum_advertisement_interval();
}
inline void TimersState::set_minimum_advertisement_interval(::uint64_t value) {
  _internal_set_minimum_advertisement_interval(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.TimersState.minimum_advertisement_interval)
}
inline ::uint64_t TimersState::_internal_minimum_advertisement_interval() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_advertisement_interval_;
}
inline void TimersState::_internal_set_minimum_advertisement_interval(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_advertisement_interval_ = value;
}

// uint64 negotiated_hold_time = 5;
inline void TimersState::clear_negotiated_hold_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.negotiated_hold_time_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t TimersState::negotiated_hold_time() const {
  // @@protoc_insertion_point(field_get:apipb.TimersState.negotiated_hold_time)
  return _internal_negotiated_hold_time();
}
inline void TimersState::set_negotiated_hold_time(::uint64_t value) {
  _internal_set_negotiated_hold_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.TimersState.negotiated_hold_time)
}
inline ::uint64_t TimersState::_internal_negotiated_hold_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.negotiated_hold_time_;
}
inline void TimersState::_internal_set_negotiated_hold_time(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.negotiated_hold_time_ = value;
}

// .google.protobuf.Timestamp uptime = 6;
inline bool TimersState::has_uptime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.uptime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& TimersState::_internal_uptime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.uptime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& TimersState::uptime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.TimersState.uptime)
  return _internal_uptime();
}
inline void TimersState::unsafe_arena_set_allocated_uptime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }
  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.TimersState.uptime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE TimersState::release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* released = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE TimersState::unsafe_arena_release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.TimersState.uptime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* temp = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL TimersState::_internal_mutable_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.uptime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.uptime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL TimersState::mutable_uptime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_uptime();
  // @@protoc_insertion_point(field_mutable:apipb.TimersState.uptime)
  return _msg;
}
inline void TimersState::set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.TimersState.uptime)
}

// .google.protobuf.Timestamp downtime = 7;
inline bool TimersState::has_downtime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.downtime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& TimersState::_internal_downtime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.downtime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& TimersState::downtime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.TimersState.downtime)
  return _internal_downtime();
}
inline void TimersState::unsafe_arena_set_allocated_downtime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }
  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.TimersState.downtime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE TimersState::release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* released = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE TimersState::unsafe_arena_release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.TimersState.downtime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* temp = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL TimersState::_internal_mutable_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.downtime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.downtime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL TimersState::mutable_downtime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_downtime();
  // @@protoc_insertion_point(field_mutable:apipb.TimersState.downtime)
  return _msg;
}
inline void TimersState::set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.TimersState.downtime)
}

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

// Transport

// string local_address = 1;
inline void Transport::clear_local_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Transport::local_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Transport.local_address)
  return _internal_local_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Transport::set_local_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.local_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Transport.local_address)
}
inline ::std::string* PROTOBUF_NONNULL Transport::mutable_local_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_local_address();
  // @@protoc_insertion_point(field_mutable:apipb.Transport.local_address)
  return _s;
}
inline const ::std::string& Transport::_internal_local_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_address_.Get();
}
inline void Transport::_internal_set_local_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Transport::_internal_mutable_local_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.local_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Transport::release_local_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Transport.local_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.local_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.local_address_.Set("", GetArena());
  }
  return released;
}
inline void Transport::set_allocated_local_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.local_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.local_address_.IsDefault()) {
    _impl_.local_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Transport.local_address)
}

// uint32 local_port = 2;
inline void Transport::clear_local_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t Transport::local_port() const {
  // @@protoc_insertion_point(field_get:apipb.Transport.local_port)
  return _internal_local_port();
}
inline void Transport::set_local_port(::uint32_t value) {
  _internal_set_local_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.Transport.local_port)
}
inline ::uint32_t Transport::_internal_local_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_port_;
}
inline void Transport::_internal_set_local_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_port_ = value;
}

// bool mtu_discovery = 3;
inline void Transport::clear_mtu_discovery() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mtu_discovery_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool Transport::mtu_discovery() const {
  // @@protoc_insertion_point(field_get:apipb.Transport.mtu_discovery)
  return _internal_mtu_discovery();
}
inline void Transport::set_mtu_discovery(bool value) {
  _internal_set_mtu_discovery(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.Transport.mtu_discovery)
}
inline bool Transport::_internal_mtu_discovery() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mtu_discovery_;
}
inline void Transport::_internal_set_mtu_discovery(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mtu_discovery_ = value;
}

// bool passive_mode = 4;
inline void Transport::clear_passive_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.passive_mode_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool Transport::passive_mode() const {
  // @@protoc_insertion_point(field_get:apipb.Transport.passive_mode)
  return _internal_passive_mode();
}
inline void Transport::set_passive_mode(bool value) {
  _internal_set_passive_mode(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.Transport.passive_mode)
}
inline bool Transport::_internal_passive_mode() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.passive_mode_;
}
inline void Transport::_internal_set_passive_mode(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.passive_mode_ = value;
}

// string remote_address = 5;
inline void Transport::clear_remote_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Transport::remote_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Transport.remote_address)
  return _internal_remote_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Transport::set_remote_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.remote_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Transport.remote_address)
}
inline ::std::string* PROTOBUF_NONNULL Transport::mutable_remote_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_remote_address();
  // @@protoc_insertion_point(field_mutable:apipb.Transport.remote_address)
  return _s;
}
inline const ::std::string& Transport::_internal_remote_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_address_.Get();
}
inline void Transport::_internal_set_remote_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Transport::_internal_mutable_remote_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.remote_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Transport::release_remote_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Transport.remote_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.remote_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.remote_address_.Set("", GetArena());
  }
  return released;
}
inline void Transport::set_allocated_remote_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.remote_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.remote_address_.IsDefault()) {
    _impl_.remote_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Transport.remote_address)
}

// uint32 remote_port = 6;
inline void Transport::clear_remote_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t Transport::remote_port() const {
  // @@protoc_insertion_point(field_get:apipb.Transport.remote_port)
  return _internal_remote_port();
}
inline void Transport::set_remote_port(::uint32_t value) {
  _internal_set_remote_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.Transport.remote_port)
}
inline ::uint32_t Transport::_internal_remote_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_port_;
}
inline void Transport::_internal_set_remote_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_port_ = value;
}

// uint32 tcp_mss = 7;
inline void Transport::clear_tcp_mss() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tcp_mss_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t Transport::tcp_mss() const {
  // @@protoc_insertion_point(field_get:apipb.Transport.tcp_mss)
  return _internal_tcp_mss();
}
inline void Transport::set_tcp_mss(::uint32_t value) {
  _internal_set_tcp_mss(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.Transport.tcp_mss)
}
inline ::uint32_t Transport::_internal_tcp_mss() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.tcp_mss_;
}
inline void Transport::_internal_set_tcp_mss(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tcp_mss_ = value;
}

// string bind_interface = 8;
inline void Transport::clear_bind_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bind_interface_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Transport::bind_interface() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Transport.bind_interface)
  return _internal_bind_interface();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Transport::set_bind_interface(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.bind_interface_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Transport.bind_interface)
}
inline ::std::string* PROTOBUF_NONNULL Transport::mutable_bind_interface()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_bind_interface();
  // @@protoc_insertion_point(field_mutable:apipb.Transport.bind_interface)
  return _s;
}
inline const ::std::string& Transport::_internal_bind_interface() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bind_interface_.Get();
}
inline void Transport::_internal_set_bind_interface(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bind_interface_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Transport::_internal_mutable_bind_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.bind_interface_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Transport::release_bind_interface() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Transport.bind_interface)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.bind_interface_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.bind_interface_.Set("", GetArena());
  }
  return released;
}
inline void Transport::set_allocated_bind_interface(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.bind_interface_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.bind_interface_.IsDefault()) {
    _impl_.bind_interface_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Transport.bind_interface)
}

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

// RouteServer

// bool route_server_client = 1;
inline void RouteServer::clear_route_server_client() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_server_client_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool RouteServer::route_server_client() const {
  // @@protoc_insertion_point(field_get:apipb.RouteServer.route_server_client)
  return _internal_route_server_client();
}
inline void RouteServer::set_route_server_client(bool value) {
  _internal_set_route_server_client(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.RouteServer.route_server_client)
}
inline bool RouteServer::_internal_route_server_client() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.route_server_client_;
}
inline void RouteServer::_internal_set_route_server_client(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_server_client_ = value;
}

// bool secondary_route = 2;
inline void RouteServer::clear_secondary_route() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.secondary_route_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool RouteServer::secondary_route() const {
  // @@protoc_insertion_point(field_get:apipb.RouteServer.secondary_route)
  return _internal_secondary_route();
}
inline void RouteServer::set_secondary_route(bool value) {
  _internal_set_secondary_route(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.RouteServer.secondary_route)
}
inline bool RouteServer::_internal_secondary_route() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.secondary_route_;
}
inline void RouteServer::_internal_set_secondary_route(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.secondary_route_ = value;
}

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

// GracefulRestart

// bool enabled = 1;
inline void GracefulRestart::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool GracefulRestart::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.enabled)
  return _internal_enabled();
}
inline void GracefulRestart::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.enabled)
}
inline bool GracefulRestart::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void GracefulRestart::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint32 restart_time = 2;
inline void GracefulRestart::clear_restart_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.restart_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t GracefulRestart::restart_time() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.restart_time)
  return _internal_restart_time();
}
inline void GracefulRestart::set_restart_time(::uint32_t value) {
  _internal_set_restart_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.restart_time)
}
inline ::uint32_t GracefulRestart::_internal_restart_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.restart_time_;
}
inline void GracefulRestart::_internal_set_restart_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.restart_time_ = value;
}

// bool helper_only = 3;
inline void GracefulRestart::clear_helper_only() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.helper_only_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool GracefulRestart::helper_only() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.helper_only)
  return _internal_helper_only();
}
inline void GracefulRestart::set_helper_only(bool value) {
  _internal_set_helper_only(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.helper_only)
}
inline bool GracefulRestart::_internal_helper_only() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.helper_only_;
}
inline void GracefulRestart::_internal_set_helper_only(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.helper_only_ = value;
}

// uint32 deferral_time = 4;
inline void GracefulRestart::clear_deferral_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t GracefulRestart::deferral_time() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.deferral_time)
  return _internal_deferral_time();
}
inline void GracefulRestart::set_deferral_time(::uint32_t value) {
  _internal_set_deferral_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.deferral_time)
}
inline ::uint32_t GracefulRestart::_internal_deferral_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.deferral_time_;
}
inline void GracefulRestart::_internal_set_deferral_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = value;
}

// bool notification_enabled = 5;
inline void GracefulRestart::clear_notification_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool GracefulRestart::notification_enabled() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.notification_enabled)
  return _internal_notification_enabled();
}
inline void GracefulRestart::set_notification_enabled(bool value) {
  _internal_set_notification_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.notification_enabled)
}
inline bool GracefulRestart::_internal_notification_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.notification_enabled_;
}
inline void GracefulRestart::_internal_set_notification_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_enabled_ = value;
}

// bool longlived_enabled = 6;
inline void GracefulRestart::clear_longlived_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.longlived_enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool GracefulRestart::longlived_enabled() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.longlived_enabled)
  return _internal_longlived_enabled();
}
inline void GracefulRestart::set_longlived_enabled(bool value) {
  _internal_set_longlived_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.longlived_enabled)
}
inline bool GracefulRestart::_internal_longlived_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.longlived_enabled_;
}
inline void GracefulRestart::_internal_set_longlived_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.longlived_enabled_ = value;
}

// uint32 stale_routes_time = 7;
inline void GracefulRestart::clear_stale_routes_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_routes_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t GracefulRestart::stale_routes_time() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.stale_routes_time)
  return _internal_stale_routes_time();
}
inline void GracefulRestart::set_stale_routes_time(::uint32_t value) {
  _internal_set_stale_routes_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.stale_routes_time)
}
inline ::uint32_t GracefulRestart::_internal_stale_routes_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stale_routes_time_;
}
inline void GracefulRestart::_internal_set_stale_routes_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_routes_time_ = value;
}

// uint32 peer_restart_time = 8;
inline void GracefulRestart::clear_peer_restart_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint32_t GracefulRestart::peer_restart_time() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.peer_restart_time)
  return _internal_peer_restart_time();
}
inline void GracefulRestart::set_peer_restart_time(::uint32_t value) {
  _internal_set_peer_restart_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.peer_restart_time)
}
inline ::uint32_t GracefulRestart::_internal_peer_restart_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_restart_time_;
}
inline void GracefulRestart::_internal_set_peer_restart_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_time_ = value;
}

// bool peer_restarting = 9;
inline void GracefulRestart::clear_peer_restarting() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restarting_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline bool GracefulRestart::peer_restarting() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.peer_restarting)
  return _internal_peer_restarting();
}
inline void GracefulRestart::set_peer_restarting(bool value) {
  _internal_set_peer_restarting(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.peer_restarting)
}
inline bool GracefulRestart::_internal_peer_restarting() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_restarting_;
}
inline void GracefulRestart::_internal_set_peer_restarting(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restarting_ = value;
}

// bool local_restarting = 10;
inline void GracefulRestart::clear_local_restarting() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_restarting_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline bool GracefulRestart::local_restarting() const {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.local_restarting)
  return _internal_local_restarting();
}
inline void GracefulRestart::set_local_restarting(bool value) {
  _internal_set_local_restarting(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.local_restarting)
}
inline bool GracefulRestart::_internal_local_restarting() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_restarting_;
}
inline void GracefulRestart::_internal_set_local_restarting(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_restarting_ = value;
}

// string mode = 11;
inline void GracefulRestart::clear_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mode_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& GracefulRestart::mode() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.GracefulRestart.mode)
  return _internal_mode();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void GracefulRestart::set_mode(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.mode_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.GracefulRestart.mode)
}
inline ::std::string* PROTOBUF_NONNULL GracefulRestart::mutable_mode()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_mode();
  // @@protoc_insertion_point(field_mutable:apipb.GracefulRestart.mode)
  return _s;
}
inline const ::std::string& GracefulRestart::_internal_mode() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mode_.Get();
}
inline void GracefulRestart::_internal_set_mode(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mode_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL GracefulRestart::_internal_mutable_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.mode_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE GracefulRestart::release_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.GracefulRestart.mode)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.mode_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.mode_.Set("", GetArena());
  }
  return released;
}
inline void GracefulRestart::set_allocated_mode(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.mode_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.mode_.IsDefault()) {
    _impl_.mode_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.GracefulRestart.mode)
}

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

// MpGracefulRestartConfig

// bool enabled = 1;
inline void MpGracefulRestartConfig::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool MpGracefulRestartConfig::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartConfig.enabled)
  return _internal_enabled();
}
inline void MpGracefulRestartConfig::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartConfig.enabled)
}
inline bool MpGracefulRestartConfig::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void MpGracefulRestartConfig::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

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

// MpGracefulRestartState

// bool enabled = 1;
inline void MpGracefulRestartState::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool MpGracefulRestartState::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartState.enabled)
  return _internal_enabled();
}
inline void MpGracefulRestartState::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartState.enabled)
}
inline bool MpGracefulRestartState::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void MpGracefulRestartState::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// bool received = 2;
inline void MpGracefulRestartState::clear_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool MpGracefulRestartState::received() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartState.received)
  return _internal_received();
}
inline void MpGracefulRestartState::set_received(bool value) {
  _internal_set_received(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartState.received)
}
inline bool MpGracefulRestartState::_internal_received() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_;
}
inline void MpGracefulRestartState::_internal_set_received(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = value;
}

// bool advertised = 3;
inline void MpGracefulRestartState::clear_advertised() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool MpGracefulRestartState::advertised() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartState.advertised)
  return _internal_advertised();
}
inline void MpGracefulRestartState::set_advertised(bool value) {
  _internal_set_advertised(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartState.advertised)
}
inline bool MpGracefulRestartState::_internal_advertised() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.advertised_;
}
inline void MpGracefulRestartState::_internal_set_advertised(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = value;
}

// bool end_of_rib_received = 4;
inline void MpGracefulRestartState::clear_end_of_rib_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_rib_received_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool MpGracefulRestartState::end_of_rib_received() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartState.end_of_rib_received)
  return _internal_end_of_rib_received();
}
inline void MpGracefulRestartState::set_end_of_rib_received(bool value) {
  _internal_set_end_of_rib_received(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartState.end_of_rib_received)
}
inline bool MpGracefulRestartState::_internal_end_of_rib_received() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.end_of_rib_received_;
}
inline void MpGracefulRestartState::_internal_set_end_of_rib_received(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_rib_received_ = value;
}

// bool end_of_rib_sent = 5;
inline void MpGracefulRestartState::clear_end_of_rib_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_rib_sent_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool MpGracefulRestartState::end_of_rib_sent() const {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestartState.end_of_rib_sent)
  return _internal_end_of_rib_sent();
}
inline void MpGracefulRestartState::set_end_of_rib_sent(bool value) {
  _internal_set_end_of_rib_sent(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.MpGracefulRestartState.end_of_rib_sent)
}
inline bool MpGracefulRestartState::_internal_end_of_rib_sent() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.end_of_rib_sent_;
}
inline void MpGracefulRestartState::_internal_set_end_of_rib_sent(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_rib_sent_ = value;
}

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

// MpGracefulRestart

// .apipb.MpGracefulRestartConfig config = 1;
inline bool MpGracefulRestart::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void MpGracefulRestart::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::MpGracefulRestartConfig& MpGracefulRestart::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MpGracefulRestartConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MpGracefulRestartConfig>(&::apipb::MpGracefulRestartConfig_globals_);
}
inline const ::apipb::MpGracefulRestartConfig& MpGracefulRestart::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestart.config)
  return _internal_config();
}
inline void MpGracefulRestart::unsafe_arena_set_allocated_config(
    ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::MpGracefulRestartConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.MpGracefulRestart.config)
}
inline ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE MpGracefulRestart::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestartConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE MpGracefulRestart::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.MpGracefulRestart.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestartConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::MpGracefulRestartConfig* PROTOBUF_NONNULL MpGracefulRestart::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MpGracefulRestartConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::MpGracefulRestartConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::MpGracefulRestartConfig* PROTOBUF_NONNULL MpGracefulRestart::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestartConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.MpGracefulRestart.config)
  return _msg;
}
inline void MpGracefulRestart::set_allocated_config(::apipb::MpGracefulRestartConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::MpGracefulRestartConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.MpGracefulRestart.config)
}

// .apipb.MpGracefulRestartState state = 2;
inline bool MpGracefulRestart::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void MpGracefulRestart::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::MpGracefulRestartState& MpGracefulRestart::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MpGracefulRestartState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MpGracefulRestartState>(&::apipb::MpGracefulRestartState_globals_);
}
inline const ::apipb::MpGracefulRestartState& MpGracefulRestart::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.MpGracefulRestart.state)
  return _internal_state();
}
inline void MpGracefulRestart::unsafe_arena_set_allocated_state(
    ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::MpGracefulRestartState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.MpGracefulRestart.state)
}
inline ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE MpGracefulRestart::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MpGracefulRestartState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE MpGracefulRestart::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.MpGracefulRestart.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MpGracefulRestartState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::MpGracefulRestartState* PROTOBUF_NONNULL MpGracefulRestart::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MpGracefulRestartState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::MpGracefulRestartState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::MpGracefulRestartState* PROTOBUF_NONNULL MpGracefulRestart::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MpGracefulRestartState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.MpGracefulRestart.state)
  return _msg;
}
inline void MpGracefulRestart::set_allocated_state(::apipb::MpGracefulRestartState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::MpGracefulRestartState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.MpGracefulRestart.state)
}

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

// AfiSafiConfig

// .apipb.Family family = 1;
inline bool AfiSafiConfig::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void AfiSafiConfig::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Family& AfiSafiConfig::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& AfiSafiConfig::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiConfig.family)
  return _internal_family();
}
inline void AfiSafiConfig::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafiConfig.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE AfiSafiConfig::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE AfiSafiConfig::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafiConfig.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL AfiSafiConfig::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL AfiSafiConfig::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafiConfig.family)
  return _msg;
}
inline void AfiSafiConfig::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafiConfig.family)
}

// bool enabled = 2;
inline void AfiSafiConfig::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool AfiSafiConfig::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiConfig.enabled)
  return _internal_enabled();
}
inline void AfiSafiConfig::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AfiSafiConfig.enabled)
}
inline bool AfiSafiConfig::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void AfiSafiConfig::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

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

// AfiSafiState

// .apipb.Family family = 1;
inline bool AfiSafiState::has_family() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.family_ != nullptr);
  return value;
}
inline void AfiSafiState::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Family& AfiSafiState::_internal_family() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Family* p = _impl_.family_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Family>(&::apipb::Family_globals_);
}
inline const ::apipb::Family& AfiSafiState::family() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiState.family)
  return _internal_family();
}
inline void AfiSafiState::unsafe_arena_set_allocated_family(
    ::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }
  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafiState.family)
}
inline ::apipb::Family* PROTOBUF_NULLABLE AfiSafiState::release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* released = _impl_.family_;
  _impl_.family_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Family* PROTOBUF_NULLABLE AfiSafiState::unsafe_arena_release_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafiState.family)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* temp = _impl_.family_;
  _impl_.family_ = nullptr;
  return temp;
}
inline ::apipb::Family* PROTOBUF_NONNULL AfiSafiState::_internal_mutable_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Family>(GetArena());
    _impl_.family_ = reinterpret_cast<::apipb::Family*>(p);
  }
  return _impl_.family_;
}
inline ::apipb::Family* PROTOBUF_NONNULL AfiSafiState::mutable_family()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::Family* _msg = _internal_mutable_family();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafiState.family)
  return _msg;
}
inline void AfiSafiState::set_allocated_family(::apipb::Family* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.family_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.family_ = reinterpret_cast<::apipb::Family*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafiState.family)
}

// bool enabled = 2;
inline void AfiSafiState::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool AfiSafiState::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiState.enabled)
  return _internal_enabled();
}
inline void AfiSafiState::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.AfiSafiState.enabled)
}
inline bool AfiSafiState::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void AfiSafiState::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint64 received = 3;
inline void AfiSafiState::clear_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t AfiSafiState::received() const {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiState.received)
  return _internal_received();
}
inline void AfiSafiState::set_received(::uint64_t value) {
  _internal_set_received(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AfiSafiState.received)
}
inline ::uint64_t AfiSafiState::_internal_received() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_;
}
inline void AfiSafiState::_internal_set_received(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = value;
}

// uint64 accepted = 4;
inline void AfiSafiState::clear_accepted() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.accepted_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t AfiSafiState::accepted() const {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiState.accepted)
  return _internal_accepted();
}
inline void AfiSafiState::set_accepted(::uint64_t value) {
  _internal_set_accepted(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.AfiSafiState.accepted)
}
inline ::uint64_t AfiSafiState::_internal_accepted() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.accepted_;
}
inline void AfiSafiState::_internal_set_accepted(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.accepted_ = value;
}

// uint64 advertised = 5;
inline void AfiSafiState::clear_advertised() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t AfiSafiState::advertised() const {
  // @@protoc_insertion_point(field_get:apipb.AfiSafiState.advertised)
  return _internal_advertised();
}
inline void AfiSafiState::set_advertised(::uint64_t value) {
  _internal_set_advertised(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.AfiSafiState.advertised)
}
inline ::uint64_t AfiSafiState::_internal_advertised() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.advertised_;
}
inline void AfiSafiState::_internal_set_advertised(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = value;
}

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

// RouteSelectionOptionsConfig

// bool always_compare_med = 1;
inline void RouteSelectionOptionsConfig::clear_always_compare_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.always_compare_med_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool RouteSelectionOptionsConfig::always_compare_med() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.always_compare_med)
  return _internal_always_compare_med();
}
inline void RouteSelectionOptionsConfig::set_always_compare_med(bool value) {
  _internal_set_always_compare_med(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.always_compare_med)
}
inline bool RouteSelectionOptionsConfig::_internal_always_compare_med() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.always_compare_med_;
}
inline void RouteSelectionOptionsConfig::_internal_set_always_compare_med(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.always_compare_med_ = value;
}

// bool ignore_as_path_length = 2;
inline void RouteSelectionOptionsConfig::clear_ignore_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_as_path_length_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool RouteSelectionOptionsConfig::ignore_as_path_length() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.ignore_as_path_length)
  return _internal_ignore_as_path_length();
}
inline void RouteSelectionOptionsConfig::set_ignore_as_path_length(bool value) {
  _internal_set_ignore_as_path_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.ignore_as_path_length)
}
inline bool RouteSelectionOptionsConfig::_internal_ignore_as_path_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ignore_as_path_length_;
}
inline void RouteSelectionOptionsConfig::_internal_set_ignore_as_path_length(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_as_path_length_ = value;
}

// bool external_compare_router_id = 3;
inline void RouteSelectionOptionsConfig::clear_external_compare_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_compare_router_id_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool RouteSelectionOptionsConfig::external_compare_router_id() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.external_compare_router_id)
  return _internal_external_compare_router_id();
}
inline void RouteSelectionOptionsConfig::set_external_compare_router_id(bool value) {
  _internal_set_external_compare_router_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.external_compare_router_id)
}
inline bool RouteSelectionOptionsConfig::_internal_external_compare_router_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.external_compare_router_id_;
}
inline void RouteSelectionOptionsConfig::_internal_set_external_compare_router_id(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_compare_router_id_ = value;
}

// bool advertise_inactive_routes = 4;
inline void RouteSelectionOptionsConfig::clear_advertise_inactive_routes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertise_inactive_routes_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool RouteSelectionOptionsConfig::advertise_inactive_routes() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.advertise_inactive_routes)
  return _internal_advertise_inactive_routes();
}
inline void RouteSelectionOptionsConfig::set_advertise_inactive_routes(bool value) {
  _internal_set_advertise_inactive_routes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.advertise_inactive_routes)
}
inline bool RouteSelectionOptionsConfig::_internal_advertise_inactive_routes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.advertise_inactive_routes_;
}
inline void RouteSelectionOptionsConfig::_internal_set_advertise_inactive_routes(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertise_inactive_routes_ = value;
}

// bool enable_aigp = 5;
inline void RouteSelectionOptionsConfig::clear_enable_aigp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_aigp_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool RouteSelectionOptionsConfig::enable_aigp() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.enable_aigp)
  return _internal_enable_aigp();
}
inline void RouteSelectionOptionsConfig::set_enable_aigp(bool value) {
  _internal_set_enable_aigp(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.enable_aigp)
}
inline bool RouteSelectionOptionsConfig::_internal_enable_aigp() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_aigp_;
}
inline void RouteSelectionOptionsConfig::_internal_set_enable_aigp(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_aigp_ = value;
}

// bool ignore_next_hop_igp_metric = 6;
inline void RouteSelectionOptionsConfig::clear_ignore_next_hop_igp_metric() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_next_hop_igp_metric_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool RouteSelectionOptionsConfig::ignore_next_hop_igp_metric() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.ignore_next_hop_igp_metric)
  return _internal_ignore_next_hop_igp_metric();
}
inline void RouteSelectionOptionsConfig::set_ignore_next_hop_igp_metric(bool value) {
  _internal_set_ignore_next_hop_igp_metric(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.ignore_next_hop_igp_metric)
}
inline bool RouteSelectionOptionsConfig::_internal_ignore_next_hop_igp_metric() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ignore_next_hop_igp_metric_;
}
inline void RouteSelectionOptionsConfig::_internal_set_ignore_next_hop_igp_metric(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_next_hop_igp_metric_ = value;
}

// bool disable_best_path_selection = 7;
inline void RouteSelectionOptionsConfig::clear_disable_best_path_selection() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.disable_best_path_selection_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline bool RouteSelectionOptionsConfig::disable_best_path_selection() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsConfig.disable_best_path_selection)
  return _internal_disable_best_path_selection();
}
inline void RouteSelectionOptionsConfig::set_disable_best_path_selection(bool value) {
  _internal_set_disable_best_path_selection(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsConfig.disable_best_path_selection)
}
inline bool RouteSelectionOptionsConfig::_internal_disable_best_path_selection() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.disable_best_path_selection_;
}
inline void RouteSelectionOptionsConfig::_internal_set_disable_best_path_selection(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.disable_best_path_selection_ = value;
}

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

// RouteSelectionOptionsState

// bool always_compare_med = 1;
inline void RouteSelectionOptionsState::clear_always_compare_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.always_compare_med_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool RouteSelectionOptionsState::always_compare_med() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.always_compare_med)
  return _internal_always_compare_med();
}
inline void RouteSelectionOptionsState::set_always_compare_med(bool value) {
  _internal_set_always_compare_med(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.always_compare_med)
}
inline bool RouteSelectionOptionsState::_internal_always_compare_med() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.always_compare_med_;
}
inline void RouteSelectionOptionsState::_internal_set_always_compare_med(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.always_compare_med_ = value;
}

// bool ignore_as_path_length = 2;
inline void RouteSelectionOptionsState::clear_ignore_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_as_path_length_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool RouteSelectionOptionsState::ignore_as_path_length() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.ignore_as_path_length)
  return _internal_ignore_as_path_length();
}
inline void RouteSelectionOptionsState::set_ignore_as_path_length(bool value) {
  _internal_set_ignore_as_path_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.ignore_as_path_length)
}
inline bool RouteSelectionOptionsState::_internal_ignore_as_path_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ignore_as_path_length_;
}
inline void RouteSelectionOptionsState::_internal_set_ignore_as_path_length(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_as_path_length_ = value;
}

// bool external_compare_router_id = 3;
inline void RouteSelectionOptionsState::clear_external_compare_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_compare_router_id_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool RouteSelectionOptionsState::external_compare_router_id() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.external_compare_router_id)
  return _internal_external_compare_router_id();
}
inline void RouteSelectionOptionsState::set_external_compare_router_id(bool value) {
  _internal_set_external_compare_router_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.external_compare_router_id)
}
inline bool RouteSelectionOptionsState::_internal_external_compare_router_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.external_compare_router_id_;
}
inline void RouteSelectionOptionsState::_internal_set_external_compare_router_id(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_compare_router_id_ = value;
}

// bool advertise_inactive_routes = 4;
inline void RouteSelectionOptionsState::clear_advertise_inactive_routes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertise_inactive_routes_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool RouteSelectionOptionsState::advertise_inactive_routes() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.advertise_inactive_routes)
  return _internal_advertise_inactive_routes();
}
inline void RouteSelectionOptionsState::set_advertise_inactive_routes(bool value) {
  _internal_set_advertise_inactive_routes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.advertise_inactive_routes)
}
inline bool RouteSelectionOptionsState::_internal_advertise_inactive_routes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.advertise_inactive_routes_;
}
inline void RouteSelectionOptionsState::_internal_set_advertise_inactive_routes(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertise_inactive_routes_ = value;
}

// bool enable_aigp = 5;
inline void RouteSelectionOptionsState::clear_enable_aigp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_aigp_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool RouteSelectionOptionsState::enable_aigp() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.enable_aigp)
  return _internal_enable_aigp();
}
inline void RouteSelectionOptionsState::set_enable_aigp(bool value) {
  _internal_set_enable_aigp(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.enable_aigp)
}
inline bool RouteSelectionOptionsState::_internal_enable_aigp() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_aigp_;
}
inline void RouteSelectionOptionsState::_internal_set_enable_aigp(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_aigp_ = value;
}

// bool ignore_next_hop_igp_metric = 6;
inline void RouteSelectionOptionsState::clear_ignore_next_hop_igp_metric() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_next_hop_igp_metric_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool RouteSelectionOptionsState::ignore_next_hop_igp_metric() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.ignore_next_hop_igp_metric)
  return _internal_ignore_next_hop_igp_metric();
}
inline void RouteSelectionOptionsState::set_ignore_next_hop_igp_metric(bool value) {
  _internal_set_ignore_next_hop_igp_metric(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.ignore_next_hop_igp_metric)
}
inline bool RouteSelectionOptionsState::_internal_ignore_next_hop_igp_metric() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ignore_next_hop_igp_metric_;
}
inline void RouteSelectionOptionsState::_internal_set_ignore_next_hop_igp_metric(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ignore_next_hop_igp_metric_ = value;
}

// bool disable_best_path_selection = 7;
inline void RouteSelectionOptionsState::clear_disable_best_path_selection() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.disable_best_path_selection_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline bool RouteSelectionOptionsState::disable_best_path_selection() const {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptionsState.disable_best_path_selection)
  return _internal_disable_best_path_selection();
}
inline void RouteSelectionOptionsState::set_disable_best_path_selection(bool value) {
  _internal_set_disable_best_path_selection(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.RouteSelectionOptionsState.disable_best_path_selection)
}
inline bool RouteSelectionOptionsState::_internal_disable_best_path_selection() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.disable_best_path_selection_;
}
inline void RouteSelectionOptionsState::_internal_set_disable_best_path_selection(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.disable_best_path_selection_ = value;
}

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

// RouteSelectionOptions

// .apipb.RouteSelectionOptionsConfig config = 1;
inline bool RouteSelectionOptions::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void RouteSelectionOptions::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::RouteSelectionOptionsConfig& RouteSelectionOptions::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteSelectionOptionsConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteSelectionOptionsConfig>(&::apipb::RouteSelectionOptionsConfig_globals_);
}
inline const ::apipb::RouteSelectionOptionsConfig& RouteSelectionOptions::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptions.config)
  return _internal_config();
}
inline void RouteSelectionOptions::unsafe_arena_set_allocated_config(
    ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RouteSelectionOptions.config)
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE RouteSelectionOptions::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteSelectionOptionsConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE RouteSelectionOptions::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RouteSelectionOptions.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteSelectionOptionsConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL RouteSelectionOptions::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteSelectionOptionsConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL RouteSelectionOptions::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteSelectionOptionsConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.RouteSelectionOptions.config)
  return _msg;
}
inline void RouteSelectionOptions::set_allocated_config(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RouteSelectionOptions.config)
}

// .apipb.RouteSelectionOptionsState state = 2;
inline bool RouteSelectionOptions::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void RouteSelectionOptions::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::RouteSelectionOptionsState& RouteSelectionOptions::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteSelectionOptionsState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteSelectionOptionsState>(&::apipb::RouteSelectionOptionsState_globals_);
}
inline const ::apipb::RouteSelectionOptionsState& RouteSelectionOptions::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RouteSelectionOptions.state)
  return _internal_state();
}
inline void RouteSelectionOptions::unsafe_arena_set_allocated_state(
    ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::RouteSelectionOptionsState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RouteSelectionOptions.state)
}
inline ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE RouteSelectionOptions::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteSelectionOptionsState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE RouteSelectionOptions::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RouteSelectionOptions.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteSelectionOptionsState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::RouteSelectionOptionsState* PROTOBUF_NONNULL RouteSelectionOptions::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteSelectionOptionsState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::RouteSelectionOptionsState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::RouteSelectionOptionsState* PROTOBUF_NONNULL RouteSelectionOptions::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteSelectionOptionsState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.RouteSelectionOptions.state)
  return _msg;
}
inline void RouteSelectionOptions::set_allocated_state(::apipb::RouteSelectionOptionsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::RouteSelectionOptionsState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RouteSelectionOptions.state)
}

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

// UseMultiplePathsConfig

// bool enabled = 1;
inline void UseMultiplePathsConfig::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool UseMultiplePathsConfig::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePathsConfig.enabled)
  return _internal_enabled();
}
inline void UseMultiplePathsConfig::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.UseMultiplePathsConfig.enabled)
}
inline bool UseMultiplePathsConfig::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void UseMultiplePathsConfig::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

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

// UseMultiplePathsState

// bool enabled = 1;
inline void UseMultiplePathsState::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool UseMultiplePathsState::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePathsState.enabled)
  return _internal_enabled();
}
inline void UseMultiplePathsState::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.UseMultiplePathsState.enabled)
}
inline bool UseMultiplePathsState::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void UseMultiplePathsState::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

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

// EbgpConfig

// bool allow_multiple_asn = 1;
inline void EbgpConfig::clear_allow_multiple_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_multiple_asn_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool EbgpConfig::allow_multiple_asn() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpConfig.allow_multiple_asn)
  return _internal_allow_multiple_asn();
}
inline void EbgpConfig::set_allow_multiple_asn(bool value) {
  _internal_set_allow_multiple_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.EbgpConfig.allow_multiple_asn)
}
inline bool EbgpConfig::_internal_allow_multiple_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.allow_multiple_asn_;
}
inline void EbgpConfig::_internal_set_allow_multiple_asn(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_multiple_asn_ = value;
}

// uint32 maximum_paths = 2;
inline void EbgpConfig::clear_maximum_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t EbgpConfig::maximum_paths() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpConfig.maximum_paths)
  return _internal_maximum_paths();
}
inline void EbgpConfig::set_maximum_paths(::uint32_t value) {
  _internal_set_maximum_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.EbgpConfig.maximum_paths)
}
inline ::uint32_t EbgpConfig::_internal_maximum_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_paths_;
}
inline void EbgpConfig::_internal_set_maximum_paths(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = value;
}

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

// EbgpState

// bool allow_multiple_asn = 1;
inline void EbgpState::clear_allow_multiple_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_multiple_asn_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool EbgpState::allow_multiple_asn() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpState.allow_multiple_asn)
  return _internal_allow_multiple_asn();
}
inline void EbgpState::set_allow_multiple_asn(bool value) {
  _internal_set_allow_multiple_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.EbgpState.allow_multiple_asn)
}
inline bool EbgpState::_internal_allow_multiple_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.allow_multiple_asn_;
}
inline void EbgpState::_internal_set_allow_multiple_asn(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allow_multiple_asn_ = value;
}

// uint32 maximum_paths = 2;
inline void EbgpState::clear_maximum_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t EbgpState::maximum_paths() const {
  // @@protoc_insertion_point(field_get:apipb.EbgpState.maximum_paths)
  return _internal_maximum_paths();
}
inline void EbgpState::set_maximum_paths(::uint32_t value) {
  _internal_set_maximum_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.EbgpState.maximum_paths)
}
inline ::uint32_t EbgpState::_internal_maximum_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_paths_;
}
inline void EbgpState::_internal_set_maximum_paths(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = value;
}

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

// Ebgp

// .apipb.EbgpConfig config = 1;
inline bool Ebgp::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void Ebgp::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::EbgpConfig& Ebgp::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::EbgpConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::EbgpConfig>(&::apipb::EbgpConfig_globals_);
}
inline const ::apipb::EbgpConfig& Ebgp::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Ebgp.config)
  return _internal_config();
}
inline void Ebgp::unsafe_arena_set_allocated_config(
    ::apipb::EbgpConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::EbgpConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Ebgp.config)
}
inline ::apipb::EbgpConfig* PROTOBUF_NULLABLE Ebgp::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::EbgpConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::EbgpConfig* PROTOBUF_NULLABLE Ebgp::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Ebgp.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::EbgpConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::EbgpConfig* PROTOBUF_NONNULL Ebgp::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::EbgpConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::EbgpConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::EbgpConfig* PROTOBUF_NONNULL Ebgp::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::EbgpConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.Ebgp.config)
  return _msg;
}
inline void Ebgp::set_allocated_config(::apipb::EbgpConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::EbgpConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Ebgp.config)
}

// .apipb.EbgpState state = 2;
inline bool Ebgp::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void Ebgp::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::EbgpState& Ebgp::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::EbgpState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::EbgpState>(&::apipb::EbgpState_globals_);
}
inline const ::apipb::EbgpState& Ebgp::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Ebgp.state)
  return _internal_state();
}
inline void Ebgp::unsafe_arena_set_allocated_state(
    ::apipb::EbgpState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::EbgpState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Ebgp.state)
}
inline ::apipb::EbgpState* PROTOBUF_NULLABLE Ebgp::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::EbgpState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::EbgpState* PROTOBUF_NULLABLE Ebgp::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Ebgp.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::EbgpState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::EbgpState* PROTOBUF_NONNULL Ebgp::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::EbgpState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::EbgpState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::EbgpState* PROTOBUF_NONNULL Ebgp::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::EbgpState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.Ebgp.state)
  return _msg;
}
inline void Ebgp::set_allocated_state(::apipb::EbgpState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::EbgpState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Ebgp.state)
}

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

// IbgpConfig

// uint32 maximum_paths = 1;
inline void IbgpConfig::clear_maximum_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t IbgpConfig::maximum_paths() const {
  // @@protoc_insertion_point(field_get:apipb.IbgpConfig.maximum_paths)
  return _internal_maximum_paths();
}
inline void IbgpConfig::set_maximum_paths(::uint32_t value) {
  _internal_set_maximum_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.IbgpConfig.maximum_paths)
}
inline ::uint32_t IbgpConfig::_internal_maximum_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_paths_;
}
inline void IbgpConfig::_internal_set_maximum_paths(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = value;
}

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

// IbgpState

// uint32 maximum_paths = 1;
inline void IbgpState::clear_maximum_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t IbgpState::maximum_paths() const {
  // @@protoc_insertion_point(field_get:apipb.IbgpState.maximum_paths)
  return _internal_maximum_paths();
}
inline void IbgpState::set_maximum_paths(::uint32_t value) {
  _internal_set_maximum_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.IbgpState.maximum_paths)
}
inline ::uint32_t IbgpState::_internal_maximum_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_paths_;
}
inline void IbgpState::_internal_set_maximum_paths(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_paths_ = value;
}

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

// Ibgp

// .apipb.IbgpConfig config = 1;
inline bool Ibgp::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void Ibgp::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::IbgpConfig& Ibgp::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::IbgpConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::IbgpConfig>(&::apipb::IbgpConfig_globals_);
}
inline const ::apipb::IbgpConfig& Ibgp::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Ibgp.config)
  return _internal_config();
}
inline void Ibgp::unsafe_arena_set_allocated_config(
    ::apipb::IbgpConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::IbgpConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Ibgp.config)
}
inline ::apipb::IbgpConfig* PROTOBUF_NULLABLE Ibgp::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::IbgpConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::IbgpConfig* PROTOBUF_NULLABLE Ibgp::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Ibgp.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::IbgpConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::IbgpConfig* PROTOBUF_NONNULL Ibgp::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::IbgpConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::IbgpConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::IbgpConfig* PROTOBUF_NONNULL Ibgp::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::IbgpConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.Ibgp.config)
  return _msg;
}
inline void Ibgp::set_allocated_config(::apipb::IbgpConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::IbgpConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Ibgp.config)
}

// .apipb.IbgpState state = 2;
inline bool Ibgp::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void Ibgp::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::IbgpState& Ibgp::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::IbgpState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::IbgpState>(&::apipb::IbgpState_globals_);
}
inline const ::apipb::IbgpState& Ibgp::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Ibgp.state)
  return _internal_state();
}
inline void Ibgp::unsafe_arena_set_allocated_state(
    ::apipb::IbgpState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::IbgpState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Ibgp.state)
}
inline ::apipb::IbgpState* PROTOBUF_NULLABLE Ibgp::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::IbgpState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::IbgpState* PROTOBUF_NULLABLE Ibgp::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Ibgp.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::IbgpState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::IbgpState* PROTOBUF_NONNULL Ibgp::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::IbgpState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::IbgpState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::IbgpState* PROTOBUF_NONNULL Ibgp::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::IbgpState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.Ibgp.state)
  return _msg;
}
inline void Ibgp::set_allocated_state(::apipb::IbgpState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::IbgpState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Ibgp.state)
}

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

// UseMultiplePaths

// .apipb.UseMultiplePathsConfig config = 1;
inline bool UseMultiplePaths::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void UseMultiplePaths::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::UseMultiplePathsConfig& UseMultiplePaths::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::UseMultiplePathsConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::UseMultiplePathsConfig>(&::apipb::UseMultiplePathsConfig_globals_);
}
inline const ::apipb::UseMultiplePathsConfig& UseMultiplePaths::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePaths.config)
  return _internal_config();
}
inline void UseMultiplePaths::unsafe_arena_set_allocated_config(
    ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::UseMultiplePathsConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UseMultiplePaths.config)
}
inline ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE UseMultiplePaths::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::UseMultiplePathsConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE UseMultiplePaths::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UseMultiplePaths.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::UseMultiplePathsConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::UseMultiplePathsConfig* PROTOBUF_NONNULL UseMultiplePaths::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::UseMultiplePathsConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::UseMultiplePathsConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::UseMultiplePathsConfig* PROTOBUF_NONNULL UseMultiplePaths::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::UseMultiplePathsConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.UseMultiplePaths.config)
  return _msg;
}
inline void UseMultiplePaths::set_allocated_config(::apipb::UseMultiplePathsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::UseMultiplePathsConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UseMultiplePaths.config)
}

// .apipb.UseMultiplePathsState state = 2;
inline bool UseMultiplePaths::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void UseMultiplePaths::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::UseMultiplePathsState& UseMultiplePaths::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::UseMultiplePathsState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::UseMultiplePathsState>(&::apipb::UseMultiplePathsState_globals_);
}
inline const ::apipb::UseMultiplePathsState& UseMultiplePaths::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePaths.state)
  return _internal_state();
}
inline void UseMultiplePaths::unsafe_arena_set_allocated_state(
    ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::UseMultiplePathsState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UseMultiplePaths.state)
}
inline ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE UseMultiplePaths::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::UseMultiplePathsState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE UseMultiplePaths::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UseMultiplePaths.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::UseMultiplePathsState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::UseMultiplePathsState* PROTOBUF_NONNULL UseMultiplePaths::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::UseMultiplePathsState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::UseMultiplePathsState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::UseMultiplePathsState* PROTOBUF_NONNULL UseMultiplePaths::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::UseMultiplePathsState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.UseMultiplePaths.state)
  return _msg;
}
inline void UseMultiplePaths::set_allocated_state(::apipb::UseMultiplePathsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::UseMultiplePathsState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UseMultiplePaths.state)
}

// .apipb.Ebgp ebgp = 3;
inline bool UseMultiplePaths::has_ebgp() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.ebgp_ != nullptr);
  return value;
}
inline void UseMultiplePaths::clear_ebgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_ != nullptr) _impl_.ebgp_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::Ebgp& UseMultiplePaths::_internal_ebgp() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Ebgp* p = _impl_.ebgp_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Ebgp>(&::apipb::Ebgp_globals_);
}
inline const ::apipb::Ebgp& UseMultiplePaths::ebgp() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePaths.ebgp)
  return _internal_ebgp();
}
inline void UseMultiplePaths::unsafe_arena_set_allocated_ebgp(
    ::apipb::Ebgp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_);
  }
  _impl_.ebgp_ = reinterpret_cast<::apipb::Ebgp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UseMultiplePaths.ebgp)
}
inline ::apipb::Ebgp* PROTOBUF_NULLABLE UseMultiplePaths::release_ebgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Ebgp* released = _impl_.ebgp_;
  _impl_.ebgp_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Ebgp* PROTOBUF_NULLABLE UseMultiplePaths::unsafe_arena_release_ebgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UseMultiplePaths.ebgp)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Ebgp* temp = _impl_.ebgp_;
  _impl_.ebgp_ = nullptr;
  return temp;
}
inline ::apipb::Ebgp* PROTOBUF_NONNULL UseMultiplePaths::_internal_mutable_ebgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ebgp_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Ebgp>(GetArena());
    _impl_.ebgp_ = reinterpret_cast<::apipb::Ebgp*>(p);
  }
  return _impl_.ebgp_;
}
inline ::apipb::Ebgp* PROTOBUF_NONNULL UseMultiplePaths::mutable_ebgp()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Ebgp* _msg = _internal_mutable_ebgp();
  // @@protoc_insertion_point(field_mutable:apipb.UseMultiplePaths.ebgp)
  return _msg;
}
inline void UseMultiplePaths::set_allocated_ebgp(::apipb::Ebgp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ebgp_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.ebgp_ = reinterpret_cast<::apipb::Ebgp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UseMultiplePaths.ebgp)
}

// .apipb.Ibgp ibgp = 4;
inline bool UseMultiplePaths::has_ibgp() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.ibgp_ != nullptr);
  return value;
}
inline void UseMultiplePaths::clear_ibgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ibgp_ != nullptr) _impl_.ibgp_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::Ibgp& UseMultiplePaths::_internal_ibgp() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Ibgp* p = _impl_.ibgp_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Ibgp>(&::apipb::Ibgp_globals_);
}
inline const ::apipb::Ibgp& UseMultiplePaths::ibgp() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.UseMultiplePaths.ibgp)
  return _internal_ibgp();
}
inline void UseMultiplePaths::unsafe_arena_set_allocated_ibgp(
    ::apipb::Ibgp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ibgp_);
  }
  _impl_.ibgp_ = reinterpret_cast<::apipb::Ibgp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.UseMultiplePaths.ibgp)
}
inline ::apipb::Ibgp* PROTOBUF_NULLABLE UseMultiplePaths::release_ibgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Ibgp* released = _impl_.ibgp_;
  _impl_.ibgp_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Ibgp* PROTOBUF_NULLABLE UseMultiplePaths::unsafe_arena_release_ibgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.UseMultiplePaths.ibgp)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Ibgp* temp = _impl_.ibgp_;
  _impl_.ibgp_ = nullptr;
  return temp;
}
inline ::apipb::Ibgp* PROTOBUF_NONNULL UseMultiplePaths::_internal_mutable_ibgp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ibgp_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Ibgp>(GetArena());
    _impl_.ibgp_ = reinterpret_cast<::apipb::Ibgp*>(p);
  }
  return _impl_.ibgp_;
}
inline ::apipb::Ibgp* PROTOBUF_NONNULL UseMultiplePaths::mutable_ibgp()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::Ibgp* _msg = _internal_mutable_ibgp();
  // @@protoc_insertion_point(field_mutable:apipb.UseMultiplePaths.ibgp)
  return _msg;
}
inline void UseMultiplePaths::set_allocated_ibgp(::apipb::Ibgp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ibgp_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.ibgp_ = reinterpret_cast<::apipb::Ibgp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.UseMultiplePaths.ibgp)
}

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

// RouteTargetMembershipConfig

// uint32 deferral_time = 1;
inline void RouteTargetMembershipConfig::clear_deferral_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t RouteTargetMembershipConfig::deferral_time() const {
  // @@protoc_insertion_point(field_get:apipb.RouteTargetMembershipConfig.deferral_time)
  return _internal_deferral_time();
}
inline void RouteTargetMembershipConfig::set_deferral_time(::uint32_t value) {
  _internal_set_deferral_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.RouteTargetMembershipConfig.deferral_time)
}
inline ::uint32_t RouteTargetMembershipConfig::_internal_deferral_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.deferral_time_;
}
inline void RouteTargetMembershipConfig::_internal_set_deferral_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = value;
}

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

// RouteTargetMembershipState

// uint32 deferral_time = 1;
inline void RouteTargetMembershipState::clear_deferral_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t RouteTargetMembershipState::deferral_time() const {
  // @@protoc_insertion_point(field_get:apipb.RouteTargetMembershipState.deferral_time)
  return _internal_deferral_time();
}
inline void RouteTargetMembershipState::set_deferral_time(::uint32_t value) {
  _internal_set_deferral_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.RouteTargetMembershipState.deferral_time)
}
inline ::uint32_t RouteTargetMembershipState::_internal_deferral_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.deferral_time_;
}
inline void RouteTargetMembershipState::_internal_set_deferral_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.deferral_time_ = value;
}

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

// RouteTargetMembership

// .apipb.RouteTargetMembershipConfig config = 1;
inline bool RouteTargetMembership::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void RouteTargetMembership::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::RouteTargetMembershipConfig& RouteTargetMembership::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteTargetMembershipConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteTargetMembershipConfig>(&::apipb::RouteTargetMembershipConfig_globals_);
}
inline const ::apipb::RouteTargetMembershipConfig& RouteTargetMembership::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RouteTargetMembership.config)
  return _internal_config();
}
inline void RouteTargetMembership::unsafe_arena_set_allocated_config(
    ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::RouteTargetMembershipConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RouteTargetMembership.config)
}
inline ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE RouteTargetMembership::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteTargetMembershipConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE RouteTargetMembership::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RouteTargetMembership.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteTargetMembershipConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::RouteTargetMembershipConfig* PROTOBUF_NONNULL RouteTargetMembership::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteTargetMembershipConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::RouteTargetMembershipConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::RouteTargetMembershipConfig* PROTOBUF_NONNULL RouteTargetMembership::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RouteTargetMembershipConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.RouteTargetMembership.config)
  return _msg;
}
inline void RouteTargetMembership::set_allocated_config(::apipb::RouteTargetMembershipConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::RouteTargetMembershipConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RouteTargetMembership.config)
}

// .apipb.RouteTargetMembershipState state = 2;
inline bool RouteTargetMembership::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void RouteTargetMembership::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::RouteTargetMembershipState& RouteTargetMembership::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteTargetMembershipState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteTargetMembershipState>(&::apipb::RouteTargetMembershipState_globals_);
}
inline const ::apipb::RouteTargetMembershipState& RouteTargetMembership::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RouteTargetMembership.state)
  return _internal_state();
}
inline void RouteTargetMembership::unsafe_arena_set_allocated_state(
    ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::RouteTargetMembershipState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RouteTargetMembership.state)
}
inline ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE RouteTargetMembership::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteTargetMembershipState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE RouteTargetMembership::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RouteTargetMembership.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteTargetMembershipState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::RouteTargetMembershipState* PROTOBUF_NONNULL RouteTargetMembership::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteTargetMembershipState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::RouteTargetMembershipState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::RouteTargetMembershipState* PROTOBUF_NONNULL RouteTargetMembership::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RouteTargetMembershipState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.RouteTargetMembership.state)
  return _msg;
}
inline void RouteTargetMembership::set_allocated_state(::apipb::RouteTargetMembershipState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::RouteTargetMembershipState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RouteTargetMembership.state)
}

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

// LongLivedGracefulRestartConfig

// bool enabled = 1;
inline void LongLivedGracefulRestartConfig::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool LongLivedGracefulRestartConfig::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartConfig.enabled)
  return _internal_enabled();
}
inline void LongLivedGracefulRestartConfig::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartConfig.enabled)
}
inline bool LongLivedGracefulRestartConfig::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void LongLivedGracefulRestartConfig::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint32 restart_time = 2;
inline void LongLivedGracefulRestartConfig::clear_restart_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.restart_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t LongLivedGracefulRestartConfig::restart_time() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartConfig.restart_time)
  return _internal_restart_time();
}
inline void LongLivedGracefulRestartConfig::set_restart_time(::uint32_t value) {
  _internal_set_restart_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartConfig.restart_time)
}
inline ::uint32_t LongLivedGracefulRestartConfig::_internal_restart_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.restart_time_;
}
inline void LongLivedGracefulRestartConfig::_internal_set_restart_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.restart_time_ = value;
}

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

// LongLivedGracefulRestartState

// bool enabled = 1;
inline void LongLivedGracefulRestartState::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool LongLivedGracefulRestartState::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartState.enabled)
  return _internal_enabled();
}
inline void LongLivedGracefulRestartState::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartState.enabled)
}
inline bool LongLivedGracefulRestartState::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void LongLivedGracefulRestartState::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// bool received = 2;
inline void LongLivedGracefulRestartState::clear_received() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool LongLivedGracefulRestartState::received() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartState.received)
  return _internal_received();
}
inline void LongLivedGracefulRestartState::set_received(bool value) {
  _internal_set_received(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartState.received)
}
inline bool LongLivedGracefulRestartState::_internal_received() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_;
}
inline void LongLivedGracefulRestartState::_internal_set_received(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ = value;
}

// bool advertised = 3;
inline void LongLivedGracefulRestartState::clear_advertised() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool LongLivedGracefulRestartState::advertised() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartState.advertised)
  return _internal_advertised();
}
inline void LongLivedGracefulRestartState::set_advertised(bool value) {
  _internal_set_advertised(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartState.advertised)
}
inline bool LongLivedGracefulRestartState::_internal_advertised() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.advertised_;
}
inline void LongLivedGracefulRestartState::_internal_set_advertised(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.advertised_ = value;
}

// uint32 peer_restart_time = 4;
inline void LongLivedGracefulRestartState::clear_peer_restart_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t LongLivedGracefulRestartState::peer_restart_time() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartState.peer_restart_time)
  return _internal_peer_restart_time();
}
inline void LongLivedGracefulRestartState::set_peer_restart_time(::uint32_t value) {
  _internal_set_peer_restart_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartState.peer_restart_time)
}
inline ::uint32_t LongLivedGracefulRestartState::_internal_peer_restart_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_restart_time_;
}
inline void LongLivedGracefulRestartState::_internal_set_peer_restart_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_time_ = value;
}

// bool peer_restart_timer_expired = 5;
inline void LongLivedGracefulRestartState::clear_peer_restart_timer_expired() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_timer_expired_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool LongLivedGracefulRestartState::peer_restart_timer_expired() const {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestartState.peer_restart_timer_expired)
  return _internal_peer_restart_timer_expired();
}
inline void LongLivedGracefulRestartState::set_peer_restart_timer_expired(bool value) {
  _internal_set_peer_restart_timer_expired(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.LongLivedGracefulRestartState.peer_restart_timer_expired)
}
inline bool LongLivedGracefulRestartState::_internal_peer_restart_timer_expired() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peer_restart_timer_expired_;
}
inline void LongLivedGracefulRestartState::_internal_set_peer_restart_timer_expired(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peer_restart_timer_expired_ = value;
}

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

// LongLivedGracefulRestart

// .apipb.LongLivedGracefulRestartConfig config = 1;
inline bool LongLivedGracefulRestart::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void LongLivedGracefulRestart::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::LongLivedGracefulRestartConfig& LongLivedGracefulRestart::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::LongLivedGracefulRestartConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::LongLivedGracefulRestartConfig>(&::apipb::LongLivedGracefulRestartConfig_globals_);
}
inline const ::apipb::LongLivedGracefulRestartConfig& LongLivedGracefulRestart::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestart.config)
  return _internal_config();
}
inline void LongLivedGracefulRestart::unsafe_arena_set_allocated_config(
    ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::LongLivedGracefulRestartConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.LongLivedGracefulRestart.config)
}
inline ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE LongLivedGracefulRestart::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::LongLivedGracefulRestartConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE LongLivedGracefulRestart::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.LongLivedGracefulRestart.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::LongLivedGracefulRestartConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NONNULL LongLivedGracefulRestart::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::LongLivedGracefulRestartConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::LongLivedGracefulRestartConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NONNULL LongLivedGracefulRestart::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::LongLivedGracefulRestartConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.LongLivedGracefulRestart.config)
  return _msg;
}
inline void LongLivedGracefulRestart::set_allocated_config(::apipb::LongLivedGracefulRestartConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::LongLivedGracefulRestartConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.LongLivedGracefulRestart.config)
}

// .apipb.LongLivedGracefulRestartState state = 2;
inline bool LongLivedGracefulRestart::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void LongLivedGracefulRestart::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::LongLivedGracefulRestartState& LongLivedGracefulRestart::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::LongLivedGracefulRestartState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::LongLivedGracefulRestartState>(&::apipb::LongLivedGracefulRestartState_globals_);
}
inline const ::apipb::LongLivedGracefulRestartState& LongLivedGracefulRestart::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.LongLivedGracefulRestart.state)
  return _internal_state();
}
inline void LongLivedGracefulRestart::unsafe_arena_set_allocated_state(
    ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::LongLivedGracefulRestartState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.LongLivedGracefulRestart.state)
}
inline ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE LongLivedGracefulRestart::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::LongLivedGracefulRestartState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE LongLivedGracefulRestart::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.LongLivedGracefulRestart.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::LongLivedGracefulRestartState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::LongLivedGracefulRestartState* PROTOBUF_NONNULL LongLivedGracefulRestart::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::LongLivedGracefulRestartState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::LongLivedGracefulRestartState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::LongLivedGracefulRestartState* PROTOBUF_NONNULL LongLivedGracefulRestart::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::LongLivedGracefulRestartState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.LongLivedGracefulRestart.state)
  return _msg;
}
inline void LongLivedGracefulRestart::set_allocated_state(::apipb::LongLivedGracefulRestartState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::LongLivedGracefulRestartState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.LongLivedGracefulRestart.state)
}

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

// AfiSafi

// .apipb.MpGracefulRestart mp_graceful_restart = 1;
inline bool AfiSafi::has_mp_graceful_restart() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.mp_graceful_restart_ != nullptr);
  return value;
}
inline void AfiSafi::clear_mp_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.mp_graceful_restart_ != nullptr) _impl_.mp_graceful_restart_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::MpGracefulRestart& AfiSafi::_internal_mp_graceful_restart() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MpGracefulRestart* p = _impl_.mp_graceful_restart_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MpGracefulRestart>(&::apipb::MpGracefulRestart_globals_);
}
inline const ::apipb::MpGracefulRestart& AfiSafi::mp_graceful_restart() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.mp_graceful_restart)
  return _internal_mp_graceful_restart();
}
inline void AfiSafi::unsafe_arena_set_allocated_mp_graceful_restart(
    ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.mp_graceful_restart_);
  }
  _impl_.mp_graceful_restart_ = reinterpret_cast<::apipb::MpGracefulRestart*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.mp_graceful_restart)
}
inline ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE AfiSafi::release_mp_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestart* released = _impl_.mp_graceful_restart_;
  _impl_.mp_graceful_restart_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MpGracefulRestart* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_mp_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.mp_graceful_restart)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestart* temp = _impl_.mp_graceful_restart_;
  _impl_.mp_graceful_restart_ = nullptr;
  return temp;
}
inline ::apipb::MpGracefulRestart* PROTOBUF_NONNULL AfiSafi::_internal_mutable_mp_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.mp_graceful_restart_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MpGracefulRestart>(GetArena());
    _impl_.mp_graceful_restart_ = reinterpret_cast<::apipb::MpGracefulRestart*>(p);
  }
  return _impl_.mp_graceful_restart_;
}
inline ::apipb::MpGracefulRestart* PROTOBUF_NONNULL AfiSafi::mutable_mp_graceful_restart()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::MpGracefulRestart* _msg = _internal_mutable_mp_graceful_restart();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.mp_graceful_restart)
  return _msg;
}
inline void AfiSafi::set_allocated_mp_graceful_restart(::apipb::MpGracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.mp_graceful_restart_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.mp_graceful_restart_ = reinterpret_cast<::apipb::MpGracefulRestart*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.mp_graceful_restart)
}

// .apipb.AfiSafiConfig config = 2;
inline bool AfiSafi::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void AfiSafi::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::AfiSafiConfig& AfiSafi::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AfiSafiConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AfiSafiConfig>(&::apipb::AfiSafiConfig_globals_);
}
inline const ::apipb::AfiSafiConfig& AfiSafi::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.config)
  return _internal_config();
}
inline void AfiSafi::unsafe_arena_set_allocated_config(
    ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::AfiSafiConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.config)
}
inline ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE AfiSafi::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AfiSafiConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AfiSafiConfig* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AfiSafiConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::AfiSafiConfig* PROTOBUF_NONNULL AfiSafi::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AfiSafiConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::AfiSafiConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::AfiSafiConfig* PROTOBUF_NONNULL AfiSafi::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AfiSafiConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.config)
  return _msg;
}
inline void AfiSafi::set_allocated_config(::apipb::AfiSafiConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::AfiSafiConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.config)
}

// .apipb.AfiSafiState state = 3;
inline bool AfiSafi::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void AfiSafi::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::AfiSafiState& AfiSafi::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AfiSafiState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AfiSafiState>(&::apipb::AfiSafiState_globals_);
}
inline const ::apipb::AfiSafiState& AfiSafi::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.state)
  return _internal_state();
}
inline void AfiSafi::unsafe_arena_set_allocated_state(
    ::apipb::AfiSafiState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::AfiSafiState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.state)
}
inline ::apipb::AfiSafiState* PROTOBUF_NULLABLE AfiSafi::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AfiSafiState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AfiSafiState* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AfiSafiState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::AfiSafiState* PROTOBUF_NONNULL AfiSafi::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AfiSafiState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::AfiSafiState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::AfiSafiState* PROTOBUF_NONNULL AfiSafi::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AfiSafiState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.state)
  return _msg;
}
inline void AfiSafi::set_allocated_state(::apipb::AfiSafiState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::AfiSafiState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.state)
}

// .apipb.ApplyPolicy apply_policy = 4;
inline bool AfiSafi::has_apply_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.apply_policy_ != nullptr);
  return value;
}
inline void AfiSafi::clear_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ != nullptr) _impl_.apply_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::ApplyPolicy& AfiSafi::_internal_apply_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ApplyPolicy* p = _impl_.apply_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ApplyPolicy>(&::apipb::ApplyPolicy_globals_);
}
inline const ::apipb::ApplyPolicy& AfiSafi::apply_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.apply_policy)
  return _internal_apply_policy();
}
inline void AfiSafi::unsafe_arena_set_allocated_apply_policy(
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }
  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.apply_policy)
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE AfiSafi::release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::ApplyPolicy* released = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.apply_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::ApplyPolicy* temp = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  return temp;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL AfiSafi::_internal_mutable_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ApplyPolicy>(GetArena());
    _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(p);
  }
  return _impl_.apply_policy_;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL AfiSafi::mutable_apply_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::ApplyPolicy* _msg = _internal_mutable_apply_policy();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.apply_policy)
  return _msg;
}
inline void AfiSafi::set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.apply_policy)
}

// .apipb.RouteSelectionOptions route_selection_options = 5;
inline bool AfiSafi::has_route_selection_options() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.route_selection_options_ != nullptr);
  return value;
}
inline void AfiSafi::clear_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_selection_options_ != nullptr) _impl_.route_selection_options_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::RouteSelectionOptions& AfiSafi::_internal_route_selection_options() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteSelectionOptions* p = _impl_.route_selection_options_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteSelectionOptions>(&::apipb::RouteSelectionOptions_globals_);
}
inline const ::apipb::RouteSelectionOptions& AfiSafi::route_selection_options() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.route_selection_options)
  return _internal_route_selection_options();
}
inline void AfiSafi::unsafe_arena_set_allocated_route_selection_options(
    ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_selection_options_);
  }
  _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.route_selection_options)
}
inline ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE AfiSafi::release_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptions* released = _impl_.route_selection_options_;
  _impl_.route_selection_options_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.route_selection_options)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptions* temp = _impl_.route_selection_options_;
  _impl_.route_selection_options_ = nullptr;
  return temp;
}
inline ::apipb::RouteSelectionOptions* PROTOBUF_NONNULL AfiSafi::_internal_mutable_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_selection_options_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteSelectionOptions>(GetArena());
    _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptions*>(p);
  }
  return _impl_.route_selection_options_;
}
inline ::apipb::RouteSelectionOptions* PROTOBUF_NONNULL AfiSafi::mutable_route_selection_options()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptions* _msg = _internal_mutable_route_selection_options();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.route_selection_options)
  return _msg;
}
inline void AfiSafi::set_allocated_route_selection_options(::apipb::RouteSelectionOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_selection_options_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptions*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.route_selection_options)
}

// .apipb.UseMultiplePaths use_multiple_paths = 6;
inline bool AfiSafi::has_use_multiple_paths() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.use_multiple_paths_ != nullptr);
  return value;
}
inline void AfiSafi::clear_use_multiple_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.use_multiple_paths_ != nullptr) _impl_.use_multiple_paths_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::UseMultiplePaths& AfiSafi::_internal_use_multiple_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::UseMultiplePaths* p = _impl_.use_multiple_paths_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::UseMultiplePaths>(&::apipb::UseMultiplePaths_globals_);
}
inline const ::apipb::UseMultiplePaths& AfiSafi::use_multiple_paths() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.use_multiple_paths)
  return _internal_use_multiple_paths();
}
inline void AfiSafi::unsafe_arena_set_allocated_use_multiple_paths(
    ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.use_multiple_paths_);
  }
  _impl_.use_multiple_paths_ = reinterpret_cast<::apipb::UseMultiplePaths*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.use_multiple_paths)
}
inline ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE AfiSafi::release_use_multiple_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::UseMultiplePaths* released = _impl_.use_multiple_paths_;
  _impl_.use_multiple_paths_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::UseMultiplePaths* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_use_multiple_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.use_multiple_paths)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::UseMultiplePaths* temp = _impl_.use_multiple_paths_;
  _impl_.use_multiple_paths_ = nullptr;
  return temp;
}
inline ::apipb::UseMultiplePaths* PROTOBUF_NONNULL AfiSafi::_internal_mutable_use_multiple_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.use_multiple_paths_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::UseMultiplePaths>(GetArena());
    _impl_.use_multiple_paths_ = reinterpret_cast<::apipb::UseMultiplePaths*>(p);
  }
  return _impl_.use_multiple_paths_;
}
inline ::apipb::UseMultiplePaths* PROTOBUF_NONNULL AfiSafi::mutable_use_multiple_paths()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::UseMultiplePaths* _msg = _internal_mutable_use_multiple_paths();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.use_multiple_paths)
  return _msg;
}
inline void AfiSafi::set_allocated_use_multiple_paths(::apipb::UseMultiplePaths* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.use_multiple_paths_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.use_multiple_paths_ = reinterpret_cast<::apipb::UseMultiplePaths*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.use_multiple_paths)
}

// .apipb.PrefixLimit prefix_limits = 7;
inline bool AfiSafi::has_prefix_limits() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.prefix_limits_ != nullptr);
  return value;
}
inline void AfiSafi::clear_prefix_limits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prefix_limits_ != nullptr) _impl_.prefix_limits_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::PrefixLimit& AfiSafi::_internal_prefix_limits() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::PrefixLimit* p = _impl_.prefix_limits_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::PrefixLimit>(&::apipb::PrefixLimit_globals_);
}
inline const ::apipb::PrefixLimit& AfiSafi::prefix_limits() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.prefix_limits)
  return _internal_prefix_limits();
}
inline void AfiSafi::unsafe_arena_set_allocated_prefix_limits(
    ::apipb::PrefixLimit* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.prefix_limits_);
  }
  _impl_.prefix_limits_ = reinterpret_cast<::apipb::PrefixLimit*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.prefix_limits)
}
inline ::apipb::PrefixLimit* PROTOBUF_NULLABLE AfiSafi::release_prefix_limits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::PrefixLimit* released = _impl_.prefix_limits_;
  _impl_.prefix_limits_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::PrefixLimit* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_prefix_limits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.prefix_limits)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::PrefixLimit* temp = _impl_.prefix_limits_;
  _impl_.prefix_limits_ = nullptr;
  return temp;
}
inline ::apipb::PrefixLimit* PROTOBUF_NONNULL AfiSafi::_internal_mutable_prefix_limits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prefix_limits_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::PrefixLimit>(GetArena());
    _impl_.prefix_limits_ = reinterpret_cast<::apipb::PrefixLimit*>(p);
  }
  return _impl_.prefix_limits_;
}
inline ::apipb::PrefixLimit* PROTOBUF_NONNULL AfiSafi::mutable_prefix_limits()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::PrefixLimit* _msg = _internal_mutable_prefix_limits();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.prefix_limits)
  return _msg;
}
inline void AfiSafi::set_allocated_prefix_limits(::apipb::PrefixLimit* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.prefix_limits_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.prefix_limits_ = reinterpret_cast<::apipb::PrefixLimit*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.prefix_limits)
}

// .apipb.RouteTargetMembership route_target_membership = 8;
inline bool AfiSafi::has_route_target_membership() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.route_target_membership_ != nullptr);
  return value;
}
inline void AfiSafi::clear_route_target_membership() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_target_membership_ != nullptr) _impl_.route_target_membership_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::RouteTargetMembership& AfiSafi::_internal_route_target_membership() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteTargetMembership* p = _impl_.route_target_membership_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteTargetMembership>(&::apipb::RouteTargetMembership_globals_);
}
inline const ::apipb::RouteTargetMembership& AfiSafi::route_target_membership() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.route_target_membership)
  return _internal_route_target_membership();
}
inline void AfiSafi::unsafe_arena_set_allocated_route_target_membership(
    ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_target_membership_);
  }
  _impl_.route_target_membership_ = reinterpret_cast<::apipb::RouteTargetMembership*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.route_target_membership)
}
inline ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE AfiSafi::release_route_target_membership() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::RouteTargetMembership* released = _impl_.route_target_membership_;
  _impl_.route_target_membership_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteTargetMembership* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_route_target_membership() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.route_target_membership)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::RouteTargetMembership* temp = _impl_.route_target_membership_;
  _impl_.route_target_membership_ = nullptr;
  return temp;
}
inline ::apipb::RouteTargetMembership* PROTOBUF_NONNULL AfiSafi::_internal_mutable_route_target_membership() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_target_membership_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteTargetMembership>(GetArena());
    _impl_.route_target_membership_ = reinterpret_cast<::apipb::RouteTargetMembership*>(p);
  }
  return _impl_.route_target_membership_;
}
inline ::apipb::RouteTargetMembership* PROTOBUF_NONNULL AfiSafi::mutable_route_target_membership()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::RouteTargetMembership* _msg = _internal_mutable_route_target_membership();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.route_target_membership)
  return _msg;
}
inline void AfiSafi::set_allocated_route_target_membership(::apipb::RouteTargetMembership* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_target_membership_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.route_target_membership_ = reinterpret_cast<::apipb::RouteTargetMembership*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.route_target_membership)
}

// .apipb.LongLivedGracefulRestart long_lived_graceful_restart = 9;
inline bool AfiSafi::has_long_lived_graceful_restart() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.long_lived_graceful_restart_ != nullptr);
  return value;
}
inline void AfiSafi::clear_long_lived_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.long_lived_graceful_restart_ != nullptr) _impl_.long_lived_graceful_restart_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::LongLivedGracefulRestart& AfiSafi::_internal_long_lived_graceful_restart() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::LongLivedGracefulRestart* p = _impl_.long_lived_graceful_restart_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::LongLivedGracefulRestart>(&::apipb::LongLivedGracefulRestart_globals_);
}
inline const ::apipb::LongLivedGracefulRestart& AfiSafi::long_lived_graceful_restart() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.long_lived_graceful_restart)
  return _internal_long_lived_graceful_restart();
}
inline void AfiSafi::unsafe_arena_set_allocated_long_lived_graceful_restart(
    ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.long_lived_graceful_restart_);
  }
  _impl_.long_lived_graceful_restart_ = reinterpret_cast<::apipb::LongLivedGracefulRestart*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.long_lived_graceful_restart)
}
inline ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE AfiSafi::release_long_lived_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::LongLivedGracefulRestart* released = _impl_.long_lived_graceful_restart_;
  _impl_.long_lived_graceful_restart_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_long_lived_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.long_lived_graceful_restart)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::LongLivedGracefulRestart* temp = _impl_.long_lived_graceful_restart_;
  _impl_.long_lived_graceful_restart_ = nullptr;
  return temp;
}
inline ::apipb::LongLivedGracefulRestart* PROTOBUF_NONNULL AfiSafi::_internal_mutable_long_lived_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.long_lived_graceful_restart_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::LongLivedGracefulRestart>(GetArena());
    _impl_.long_lived_graceful_restart_ = reinterpret_cast<::apipb::LongLivedGracefulRestart*>(p);
  }
  return _impl_.long_lived_graceful_restart_;
}
inline ::apipb::LongLivedGracefulRestart* PROTOBUF_NONNULL AfiSafi::mutable_long_lived_graceful_restart()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::LongLivedGracefulRestart* _msg = _internal_mutable_long_lived_graceful_restart();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.long_lived_graceful_restart)
  return _msg;
}
inline void AfiSafi::set_allocated_long_lived_graceful_restart(::apipb::LongLivedGracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.long_lived_graceful_restart_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.long_lived_graceful_restart_ = reinterpret_cast<::apipb::LongLivedGracefulRestart*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.long_lived_graceful_restart)
}

// .apipb.AddPaths add_paths = 10;
inline bool AfiSafi::has_add_paths() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.add_paths_ != nullptr);
  return value;
}
inline void AfiSafi::clear_add_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.add_paths_ != nullptr) _impl_.add_paths_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::apipb::AddPaths& AfiSafi::_internal_add_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AddPaths* p = _impl_.add_paths_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AddPaths>(&::apipb::AddPaths_globals_);
}
inline const ::apipb::AddPaths& AfiSafi::add_paths() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AfiSafi.add_paths)
  return _internal_add_paths();
}
inline void AfiSafi::unsafe_arena_set_allocated_add_paths(
    ::apipb::AddPaths* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.add_paths_);
  }
  _impl_.add_paths_ = reinterpret_cast<::apipb::AddPaths*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AfiSafi.add_paths)
}
inline ::apipb::AddPaths* PROTOBUF_NULLABLE AfiSafi::release_add_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::AddPaths* released = _impl_.add_paths_;
  _impl_.add_paths_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AddPaths* PROTOBUF_NULLABLE AfiSafi::unsafe_arena_release_add_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AfiSafi.add_paths)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::AddPaths* temp = _impl_.add_paths_;
  _impl_.add_paths_ = nullptr;
  return temp;
}
inline ::apipb::AddPaths* PROTOBUF_NONNULL AfiSafi::_internal_mutable_add_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.add_paths_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AddPaths>(GetArena());
    _impl_.add_paths_ = reinterpret_cast<::apipb::AddPaths*>(p);
  }
  return _impl_.add_paths_;
}
inline ::apipb::AddPaths* PROTOBUF_NONNULL AfiSafi::mutable_add_paths()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::apipb::AddPaths* _msg = _internal_mutable_add_paths();
  // @@protoc_insertion_point(field_mutable:apipb.AfiSafi.add_paths)
  return _msg;
}
inline void AfiSafi::set_allocated_add_paths(::apipb::AddPaths* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.add_paths_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.add_paths_ = reinterpret_cast<::apipb::AddPaths*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AfiSafi.add_paths)
}

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

// AddPathsConfig

// bool receive = 1;
inline void AddPathsConfig::clear_receive() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.receive_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool AddPathsConfig::receive() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathsConfig.receive)
  return _internal_receive();
}
inline void AddPathsConfig::set_receive(bool value) {
  _internal_set_receive(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.AddPathsConfig.receive)
}
inline bool AddPathsConfig::_internal_receive() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.receive_;
}
inline void AddPathsConfig::_internal_set_receive(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.receive_ = value;
}

// uint32 send_max = 2;
inline void AddPathsConfig::clear_send_max() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_max_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t AddPathsConfig::send_max() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathsConfig.send_max)
  return _internal_send_max();
}
inline void AddPathsConfig::set_send_max(::uint32_t value) {
  _internal_set_send_max(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AddPathsConfig.send_max)
}
inline ::uint32_t AddPathsConfig::_internal_send_max() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_max_;
}
inline void AddPathsConfig::_internal_set_send_max(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_max_ = value;
}

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

// AddPathsState

// bool receive = 1;
inline void AddPathsState::clear_receive() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.receive_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool AddPathsState::receive() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathsState.receive)
  return _internal_receive();
}
inline void AddPathsState::set_receive(bool value) {
  _internal_set_receive(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.AddPathsState.receive)
}
inline bool AddPathsState::_internal_receive() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.receive_;
}
inline void AddPathsState::_internal_set_receive(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.receive_ = value;
}

// uint32 send_max = 2;
inline void AddPathsState::clear_send_max() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_max_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t AddPathsState::send_max() const {
  // @@protoc_insertion_point(field_get:apipb.AddPathsState.send_max)
  return _internal_send_max();
}
inline void AddPathsState::set_send_max(::uint32_t value) {
  _internal_set_send_max(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AddPathsState.send_max)
}
inline ::uint32_t AddPathsState::_internal_send_max() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.send_max_;
}
inline void AddPathsState::_internal_set_send_max(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.send_max_ = value;
}

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

// AddPaths

// .apipb.AddPathsConfig config = 1;
inline bool AddPaths::has_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.config_ != nullptr);
  return value;
}
inline void AddPaths::clear_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ != nullptr) _impl_.config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::AddPathsConfig& AddPaths::_internal_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AddPathsConfig* p = _impl_.config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AddPathsConfig>(&::apipb::AddPathsConfig_globals_);
}
inline const ::apipb::AddPathsConfig& AddPaths::config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPaths.config)
  return _internal_config();
}
inline void AddPaths::unsafe_arena_set_allocated_config(
    ::apipb::AddPathsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }
  _impl_.config_ = reinterpret_cast<::apipb::AddPathsConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPaths.config)
}
inline ::apipb::AddPathsConfig* PROTOBUF_NULLABLE AddPaths::release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::AddPathsConfig* released = _impl_.config_;
  _impl_.config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AddPathsConfig* PROTOBUF_NULLABLE AddPaths::unsafe_arena_release_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPaths.config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::AddPathsConfig* temp = _impl_.config_;
  _impl_.config_ = nullptr;
  return temp;
}
inline ::apipb::AddPathsConfig* PROTOBUF_NONNULL AddPaths::_internal_mutable_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AddPathsConfig>(GetArena());
    _impl_.config_ = reinterpret_cast<::apipb::AddPathsConfig*>(p);
  }
  return _impl_.config_;
}
inline ::apipb::AddPathsConfig* PROTOBUF_NONNULL AddPaths::mutable_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::AddPathsConfig* _msg = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:apipb.AddPaths.config)
  return _msg;
}
inline void AddPaths::set_allocated_config(::apipb::AddPathsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.config_ = reinterpret_cast<::apipb::AddPathsConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPaths.config)
}

// .apipb.AddPathsState state = 2;
inline bool AddPaths::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void AddPaths::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::AddPathsState& AddPaths::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AddPathsState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AddPathsState>(&::apipb::AddPathsState_globals_);
}
inline const ::apipb::AddPathsState& AddPaths::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.AddPaths.state)
  return _internal_state();
}
inline void AddPaths::unsafe_arena_set_allocated_state(
    ::apipb::AddPathsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::AddPathsState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.AddPaths.state)
}
inline ::apipb::AddPathsState* PROTOBUF_NULLABLE AddPaths::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AddPathsState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AddPathsState* PROTOBUF_NULLABLE AddPaths::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.AddPaths.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AddPathsState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::AddPathsState* PROTOBUF_NONNULL AddPaths::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AddPathsState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::AddPathsState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::AddPathsState* PROTOBUF_NONNULL AddPaths::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::AddPathsState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.AddPaths.state)
  return _msg;
}
inline void AddPaths::set_allocated_state(::apipb::AddPathsState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::AddPathsState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.AddPaths.state)
}

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

// Prefix

// string ip_prefix = 1;
inline void Prefix::clear_ip_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Prefix::ip_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Prefix.ip_prefix)
  return _internal_ip_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Prefix::set_ip_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.ip_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Prefix.ip_prefix)
}
inline ::std::string* PROTOBUF_NONNULL Prefix::mutable_ip_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_ip_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.Prefix.ip_prefix)
  return _s;
}
inline const ::std::string& Prefix::_internal_ip_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ip_prefix_.Get();
}
inline void Prefix::_internal_set_ip_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Prefix::_internal_mutable_ip_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.ip_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Prefix::release_ip_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Prefix.ip_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.ip_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.ip_prefix_.Set("", GetArena());
  }
  return released;
}
inline void Prefix::set_allocated_ip_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.ip_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.ip_prefix_.IsDefault()) {
    _impl_.ip_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Prefix.ip_prefix)
}

// uint32 mask_length_min = 2;
inline void Prefix::clear_mask_length_min() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_length_min_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t Prefix::mask_length_min() const {
  // @@protoc_insertion_point(field_get:apipb.Prefix.mask_length_min)
  return _internal_mask_length_min();
}
inline void Prefix::set_mask_length_min(::uint32_t value) {
  _internal_set_mask_length_min(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.Prefix.mask_length_min)
}
inline ::uint32_t Prefix::_internal_mask_length_min() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mask_length_min_;
}
inline void Prefix::_internal_set_mask_length_min(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_length_min_ = value;
}

// uint32 mask_length_max = 3;
inline void Prefix::clear_mask_length_max() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_length_max_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t Prefix::mask_length_max() const {
  // @@protoc_insertion_point(field_get:apipb.Prefix.mask_length_max)
  return _internal_mask_length_max();
}
inline void Prefix::set_mask_length_max(::uint32_t value) {
  _internal_set_mask_length_max(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.Prefix.mask_length_max)
}
inline ::uint32_t Prefix::_internal_mask_length_max() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mask_length_max_;
}
inline void Prefix::_internal_set_mask_length_max(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_length_max_ = value;
}

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

// DefinedSet

// .apipb.DefinedType defined_type = 1;
inline void DefinedSet::clear_defined_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::DefinedType DefinedSet::defined_type() const {
  // @@protoc_insertion_point(field_get:apipb.DefinedSet.defined_type)
  return _internal_defined_type();
}
inline void DefinedSet::set_defined_type(::apipb::DefinedType value) {
  _internal_set_defined_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.DefinedSet.defined_type)
}
inline ::apipb::DefinedType DefinedSet::_internal_defined_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::DefinedType>(_impl_.defined_type_);
}
inline void DefinedSet::_internal_set_defined_type(::apipb::DefinedType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_type_ = value;
}

// string name = 2;
inline void DefinedSet::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& DefinedSet::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DefinedSet.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DefinedSet::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.DefinedSet.name)
}
inline ::std::string* PROTOBUF_NONNULL DefinedSet::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.DefinedSet.name)
  return _s;
}
inline const ::std::string& DefinedSet::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void DefinedSet::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DefinedSet::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DefinedSet::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.DefinedSet.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void DefinedSet::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.DefinedSet.name)
}

// repeated string list = 3;
inline int DefinedSet::_internal_list_size() const {
  return _internal_list().size();
}
inline int DefinedSet::list_size() const {
  return _internal_list_size();
}
inline void DefinedSet::clear_list() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.list_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL DefinedSet::add_list()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_list()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:apipb.DefinedSet.list)
  return _s;
}
inline const ::std::string& DefinedSet::list(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DefinedSet.list)
  return _internal_list().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL DefinedSet::mutable_list(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.DefinedSet.list)
  return _internal_mutable_list()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void DefinedSet::set_list(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_list()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:apipb.DefinedSet.list)
}
template <typename Arg_, typename... Args_>
inline void DefinedSet::add_list(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_list(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.DefinedSet.list)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& DefinedSet::list()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.DefinedSet.list)
  return _internal_list();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
DefinedSet::mutable_list() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.DefinedSet.list)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_list();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
DefinedSet::_internal_list() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.list_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
DefinedSet::_internal_mutable_list() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.list_;
}

// repeated .apipb.Prefix prefixes = 4;
inline int DefinedSet::_internal_prefixes_size() const {
  return _internal_prefixes().size();
}
inline int DefinedSet::prefixes_size() const {
  return _internal_prefixes_size();
}
inline void DefinedSet::clear_prefixes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefixes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Prefix& DefinedSet::prefixes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.DefinedSet.prefixes)
  return _internal_prefixes().Get(index);
}
inline ::apipb::Prefix* PROTOBUF_NONNULL DefinedSet::mutable_prefixes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.DefinedSet.prefixes)
  return _internal_mutable_prefixes()->Mutable(index);
}
inline ::apipb::Prefix* PROTOBUF_NONNULL DefinedSet::add_prefixes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Prefix* _add =
      _internal_mutable_prefixes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.DefinedSet.prefixes)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Prefix>& DefinedSet::prefixes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.DefinedSet.prefixes)
  return _internal_prefixes();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Prefix>* PROTOBUF_NONNULL
DefinedSet::mutable_prefixes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.DefinedSet.prefixes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_prefixes();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Prefix>&
DefinedSet::_internal_prefixes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefixes_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Prefix>* PROTOBUF_NONNULL
DefinedSet::_internal_mutable_prefixes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.prefixes_;
}

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

// MatchSet

// .apipb.MatchSet.Type type = 1;
inline void MatchSet::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::MatchSet_Type MatchSet::type() const {
  // @@protoc_insertion_point(field_get:apipb.MatchSet.type)
  return _internal_type();
}
inline void MatchSet::set_type(::apipb::MatchSet_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.MatchSet.type)
}
inline ::apipb::MatchSet_Type MatchSet::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::MatchSet_Type>(_impl_.type_);
}
inline void MatchSet::_internal_set_type(::apipb::MatchSet_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// string name = 2;
inline void MatchSet::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& MatchSet::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.MatchSet.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void MatchSet::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.MatchSet.name)
}
inline ::std::string* PROTOBUF_NONNULL MatchSet::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.MatchSet.name)
  return _s;
}
inline const ::std::string& MatchSet::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void MatchSet::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL MatchSet::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE MatchSet::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.MatchSet.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void MatchSet::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.MatchSet.name)
}

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

// AsPathLength

// .apipb.AsPathLength.Type type = 1;
inline void AsPathLength::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::apipb::AsPathLength_Type AsPathLength::type() const {
  // @@protoc_insertion_point(field_get:apipb.AsPathLength.type)
  return _internal_type();
}
inline void AsPathLength::set_type(::apipb::AsPathLength_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.AsPathLength.type)
}
inline ::apipb::AsPathLength_Type AsPathLength::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::AsPathLength_Type>(_impl_.type_);
}
inline void AsPathLength::_internal_set_type(::apipb::AsPathLength_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// uint32 length = 2;
inline void AsPathLength::clear_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.length_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t AsPathLength::length() const {
  // @@protoc_insertion_point(field_get:apipb.AsPathLength.length)
  return _internal_length();
}
inline void AsPathLength::set_length(::uint32_t value) {
  _internal_set_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AsPathLength.length)
}
inline ::uint32_t AsPathLength::_internal_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.length_;
}
inline void AsPathLength::_internal_set_length(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.length_ = value;
}

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

// Conditions

// .apipb.MatchSet prefix_set = 1;
inline bool Conditions::has_prefix_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.prefix_set_ != nullptr);
  return value;
}
inline void Conditions::clear_prefix_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prefix_set_ != nullptr) _impl_.prefix_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::MatchSet& Conditions::_internal_prefix_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.prefix_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::prefix_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.prefix_set)
  return _internal_prefix_set();
}
inline void Conditions::unsafe_arena_set_allocated_prefix_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.prefix_set_);
  }
  _impl_.prefix_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.prefix_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_prefix_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::MatchSet* released = _impl_.prefix_set_;
  _impl_.prefix_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_prefix_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.prefix_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::MatchSet* temp = _impl_.prefix_set_;
  _impl_.prefix_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_prefix_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.prefix_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.prefix_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.prefix_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_prefix_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::MatchSet* _msg = _internal_mutable_prefix_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.prefix_set)
  return _msg;
}
inline void Conditions::set_allocated_prefix_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.prefix_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.prefix_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.prefix_set)
}

// .apipb.MatchSet neighbor_set = 2;
inline bool Conditions::has_neighbor_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.neighbor_set_ != nullptr);
  return value;
}
inline void Conditions::clear_neighbor_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.neighbor_set_ != nullptr) _impl_.neighbor_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::MatchSet& Conditions::_internal_neighbor_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.neighbor_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::neighbor_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.neighbor_set)
  return _internal_neighbor_set();
}
inline void Conditions::unsafe_arena_set_allocated_neighbor_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.neighbor_set_);
  }
  _impl_.neighbor_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.neighbor_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_neighbor_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::MatchSet* released = _impl_.neighbor_set_;
  _impl_.neighbor_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_neighbor_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.neighbor_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::MatchSet* temp = _impl_.neighbor_set_;
  _impl_.neighbor_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_neighbor_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.neighbor_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.neighbor_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.neighbor_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_neighbor_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::MatchSet* _msg = _internal_mutable_neighbor_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.neighbor_set)
  return _msg;
}
inline void Conditions::set_allocated_neighbor_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.neighbor_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.neighbor_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.neighbor_set)
}

// .apipb.AsPathLength as_path_length = 3;
inline bool Conditions::has_as_path_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.as_path_length_ != nullptr);
  return value;
}
inline void Conditions::clear_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_path_length_ != nullptr) _impl_.as_path_length_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::AsPathLength& Conditions::_internal_as_path_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AsPathLength* p = _impl_.as_path_length_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AsPathLength>(&::apipb::AsPathLength_globals_);
}
inline const ::apipb::AsPathLength& Conditions::as_path_length() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.as_path_length)
  return _internal_as_path_length();
}
inline void Conditions::unsafe_arena_set_allocated_as_path_length(
    ::apipb::AsPathLength* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_path_length_);
  }
  _impl_.as_path_length_ = reinterpret_cast<::apipb::AsPathLength*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.as_path_length)
}
inline ::apipb::AsPathLength* PROTOBUF_NULLABLE Conditions::release_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::AsPathLength* released = _impl_.as_path_length_;
  _impl_.as_path_length_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AsPathLength* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.as_path_length)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::AsPathLength* temp = _impl_.as_path_length_;
  _impl_.as_path_length_ = nullptr;
  return temp;
}
inline ::apipb::AsPathLength* PROTOBUF_NONNULL Conditions::_internal_mutable_as_path_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_path_length_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AsPathLength>(GetArena());
    _impl_.as_path_length_ = reinterpret_cast<::apipb::AsPathLength*>(p);
  }
  return _impl_.as_path_length_;
}
inline ::apipb::AsPathLength* PROTOBUF_NONNULL Conditions::mutable_as_path_length()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::AsPathLength* _msg = _internal_mutable_as_path_length();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.as_path_length)
  return _msg;
}
inline void Conditions::set_allocated_as_path_length(::apipb::AsPathLength* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_path_length_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.as_path_length_ = reinterpret_cast<::apipb::AsPathLength*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.as_path_length)
}

// .apipb.MatchSet as_path_set = 4;
inline bool Conditions::has_as_path_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.as_path_set_ != nullptr);
  return value;
}
inline void Conditions::clear_as_path_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_path_set_ != nullptr) _impl_.as_path_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::MatchSet& Conditions::_internal_as_path_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.as_path_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::as_path_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.as_path_set)
  return _internal_as_path_set();
}
inline void Conditions::unsafe_arena_set_allocated_as_path_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_path_set_);
  }
  _impl_.as_path_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.as_path_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_as_path_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::MatchSet* released = _impl_.as_path_set_;
  _impl_.as_path_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_as_path_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.as_path_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::MatchSet* temp = _impl_.as_path_set_;
  _impl_.as_path_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_as_path_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_path_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.as_path_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.as_path_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_as_path_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::MatchSet* _msg = _internal_mutable_as_path_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.as_path_set)
  return _msg;
}
inline void Conditions::set_allocated_as_path_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_path_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.as_path_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.as_path_set)
}

// .apipb.MatchSet community_set = 5;
inline bool Conditions::has_community_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.community_set_ != nullptr);
  return value;
}
inline void Conditions::clear_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.community_set_ != nullptr) _impl_.community_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::MatchSet& Conditions::_internal_community_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.community_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::community_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.community_set)
  return _internal_community_set();
}
inline void Conditions::unsafe_arena_set_allocated_community_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.community_set_);
  }
  _impl_.community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.community_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::MatchSet* released = _impl_.community_set_;
  _impl_.community_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.community_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::MatchSet* temp = _impl_.community_set_;
  _impl_.community_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.community_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.community_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.community_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_community_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::MatchSet* _msg = _internal_mutable_community_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.community_set)
  return _msg;
}
inline void Conditions::set_allocated_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.community_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.community_set)
}

// .apipb.MatchSet ext_community_set = 6;
inline bool Conditions::has_ext_community_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.ext_community_set_ != nullptr);
  return value;
}
inline void Conditions::clear_ext_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ext_community_set_ != nullptr) _impl_.ext_community_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::MatchSet& Conditions::_internal_ext_community_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.ext_community_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::ext_community_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.ext_community_set)
  return _internal_ext_community_set();
}
inline void Conditions::unsafe_arena_set_allocated_ext_community_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ext_community_set_);
  }
  _impl_.ext_community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.ext_community_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_ext_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::MatchSet* released = _impl_.ext_community_set_;
  _impl_.ext_community_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_ext_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.ext_community_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::MatchSet* temp = _impl_.ext_community_set_;
  _impl_.ext_community_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_ext_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ext_community_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.ext_community_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.ext_community_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_ext_community_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::MatchSet* _msg = _internal_mutable_ext_community_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.ext_community_set)
  return _msg;
}
inline void Conditions::set_allocated_ext_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ext_community_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.ext_community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.ext_community_set)
}

// int32 rpki_result = 7;
inline void Conditions::clear_rpki_result() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpki_result_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::int32_t Conditions::rpki_result() const {
  // @@protoc_insertion_point(field_get:apipb.Conditions.rpki_result)
  return _internal_rpki_result();
}
inline void Conditions::set_rpki_result(::int32_t value) {
  _internal_set_rpki_result(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.Conditions.rpki_result)
}
inline ::int32_t Conditions::_internal_rpki_result() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.rpki_result_;
}
inline void Conditions::_internal_set_rpki_result(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpki_result_ = value;
}

// .apipb.Conditions.RouteType route_type = 8;
inline void Conditions::clear_route_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::apipb::Conditions_RouteType Conditions::route_type() const {
  // @@protoc_insertion_point(field_get:apipb.Conditions.route_type)
  return _internal_route_type();
}
inline void Conditions::set_route_type(::apipb::Conditions_RouteType value) {
  _internal_set_route_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.Conditions.route_type)
}
inline ::apipb::Conditions_RouteType Conditions::_internal_route_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::Conditions_RouteType>(_impl_.route_type_);
}
inline void Conditions::_internal_set_route_type(::apipb::Conditions_RouteType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_type_ = value;
}

// .apipb.MatchSet large_community_set = 9;
inline bool Conditions::has_large_community_set() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.large_community_set_ != nullptr);
  return value;
}
inline void Conditions::clear_large_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.large_community_set_ != nullptr) _impl_.large_community_set_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::MatchSet& Conditions::_internal_large_community_set() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MatchSet* p = _impl_.large_community_set_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MatchSet>(&::apipb::MatchSet_globals_);
}
inline const ::apipb::MatchSet& Conditions::large_community_set() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.large_community_set)
  return _internal_large_community_set();
}
inline void Conditions::unsafe_arena_set_allocated_large_community_set(
    ::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.large_community_set_);
  }
  _impl_.large_community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Conditions.large_community_set)
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::release_large_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::MatchSet* released = _impl_.large_community_set_;
  _impl_.large_community_set_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MatchSet* PROTOBUF_NULLABLE Conditions::unsafe_arena_release_large_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Conditions.large_community_set)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::MatchSet* temp = _impl_.large_community_set_;
  _impl_.large_community_set_ = nullptr;
  return temp;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::_internal_mutable_large_community_set() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.large_community_set_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MatchSet>(GetArena());
    _impl_.large_community_set_ = reinterpret_cast<::apipb::MatchSet*>(p);
  }
  return _impl_.large_community_set_;
}
inline ::apipb::MatchSet* PROTOBUF_NONNULL Conditions::mutable_large_community_set()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::MatchSet* _msg = _internal_mutable_large_community_set();
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.large_community_set)
  return _msg;
}
inline void Conditions::set_allocated_large_community_set(::apipb::MatchSet* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.large_community_set_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.large_community_set_ = reinterpret_cast<::apipb::MatchSet*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Conditions.large_community_set)
}

// repeated string next_hop_in_list = 10;
inline int Conditions::_internal_next_hop_in_list_size() const {
  return _internal_next_hop_in_list().size();
}
inline int Conditions::next_hop_in_list_size() const {
  return _internal_next_hop_in_list_size();
}
inline void Conditions::clear_next_hop_in_list() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_hop_in_list_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL Conditions::add_next_hop_in_list()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_next_hop_in_list()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:apipb.Conditions.next_hop_in_list)
  return _s;
}
inline const ::std::string& Conditions::next_hop_in_list(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.next_hop_in_list)
  return _internal_next_hop_in_list().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Conditions::mutable_next_hop_in_list(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.next_hop_in_list)
  return _internal_mutable_next_hop_in_list()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Conditions::set_next_hop_in_list(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_next_hop_in_list()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:apipb.Conditions.next_hop_in_list)
}
template <typename Arg_, typename... Args_>
inline void Conditions::add_next_hop_in_list(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_next_hop_in_list(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Conditions.next_hop_in_list)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Conditions::next_hop_in_list()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Conditions.next_hop_in_list)
  return _internal_next_hop_in_list();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Conditions::mutable_next_hop_in_list() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Conditions.next_hop_in_list)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_next_hop_in_list();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Conditions::_internal_next_hop_in_list() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_hop_in_list_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Conditions::_internal_mutable_next_hop_in_list() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.next_hop_in_list_;
}

// repeated .apipb.Family afi_safi_in = 11;
inline int Conditions::_internal_afi_safi_in_size() const {
  return _internal_afi_safi_in().size();
}
inline int Conditions::afi_safi_in_size() const {
  return _internal_afi_safi_in_size();
}
inline void Conditions::clear_afi_safi_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.afi_safi_in_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Family& Conditions::afi_safi_in(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Conditions.afi_safi_in)
  return _internal_afi_safi_in().Get(index);
}
inline ::apipb::Family* PROTOBUF_NONNULL Conditions::mutable_afi_safi_in(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Conditions.afi_safi_in)
  return _internal_mutable_afi_safi_in()->Mutable(index);
}
inline ::apipb::Family* PROTOBUF_NONNULL Conditions::add_afi_safi_in()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Family* _add =
      _internal_mutable_afi_safi_in()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.Conditions.afi_safi_in)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Family>& Conditions::afi_safi_in() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Conditions.afi_safi_in)
  return _internal_afi_safi_in();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Family>* PROTOBUF_NONNULL
Conditions::mutable_afi_safi_in() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Conditions.afi_safi_in)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_afi_safi_in();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Family>&
Conditions::_internal_afi_safi_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.afi_safi_in_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Family>* PROTOBUF_NONNULL
Conditions::_internal_mutable_afi_safi_in() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.afi_safi_in_;
}

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

// CommunityAction

// .apipb.CommunityAction.Type type = 1;
inline void CommunityAction::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::CommunityAction_Type CommunityAction::type() const {
  // @@protoc_insertion_point(field_get:apipb.CommunityAction.type)
  return _internal_type();
}
inline void CommunityAction::set_type(::apipb::CommunityAction_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.CommunityAction.type)
}
inline ::apipb::CommunityAction_Type CommunityAction::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::CommunityAction_Type>(_impl_.type_);
}
inline void CommunityAction::_internal_set_type(::apipb::CommunityAction_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// repeated string communities = 2;
inline int CommunityAction::_internal_communities_size() const {
  return _internal_communities().size();
}
inline int CommunityAction::communities_size() const {
  return _internal_communities_size();
}
inline void CommunityAction::clear_communities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communities_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL CommunityAction::add_communities()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_communities()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:apipb.CommunityAction.communities)
  return _s;
}
inline const ::std::string& CommunityAction::communities(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.CommunityAction.communities)
  return _internal_communities().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL CommunityAction::mutable_communities(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.CommunityAction.communities)
  return _internal_mutable_communities()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void CommunityAction::set_communities(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_communities()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:apipb.CommunityAction.communities)
}
template <typename Arg_, typename... Args_>
inline void CommunityAction::add_communities(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_communities(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.CommunityAction.communities)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& CommunityAction::communities()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.CommunityAction.communities)
  return _internal_communities();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
CommunityAction::mutable_communities() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.CommunityAction.communities)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_communities();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
CommunityAction::_internal_communities() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.communities_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
CommunityAction::_internal_mutable_communities() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.communities_;
}

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

// MedAction

// .apipb.MedAction.Type type = 1;
inline void MedAction::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::apipb::MedAction_Type MedAction::type() const {
  // @@protoc_insertion_point(field_get:apipb.MedAction.type)
  return _internal_type();
}
inline void MedAction::set_type(::apipb::MedAction_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.MedAction.type)
}
inline ::apipb::MedAction_Type MedAction::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::MedAction_Type>(_impl_.type_);
}
inline void MedAction::_internal_set_type(::apipb::MedAction_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// int64 value = 2;
inline void MedAction::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t MedAction::value() const {
  // @@protoc_insertion_point(field_get:apipb.MedAction.value)
  return _internal_value();
}
inline void MedAction::set_value(::int64_t value) {
  _internal_set_value(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.MedAction.value)
}
inline ::int64_t MedAction::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_;
}
inline void MedAction::_internal_set_value(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = value;
}

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

// AsPrependAction

// uint32 asn = 1;
inline void AsPrependAction::clear_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t AsPrependAction::asn() const {
  // @@protoc_insertion_point(field_get:apipb.AsPrependAction.asn)
  return _internal_asn();
}
inline void AsPrependAction::set_asn(::uint32_t value) {
  _internal_set_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.AsPrependAction.asn)
}
inline ::uint32_t AsPrependAction::_internal_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.asn_;
}
inline void AsPrependAction::_internal_set_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = value;
}

// uint32 repeat = 2;
inline void AsPrependAction::clear_repeat() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.repeat_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t AsPrependAction::repeat() const {
  // @@protoc_insertion_point(field_get:apipb.AsPrependAction.repeat)
  return _internal_repeat();
}
inline void AsPrependAction::set_repeat(::uint32_t value) {
  _internal_set_repeat(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.AsPrependAction.repeat)
}
inline ::uint32_t AsPrependAction::_internal_repeat() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.repeat_;
}
inline void AsPrependAction::_internal_set_repeat(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.repeat_ = value;
}

// bool use_left_most = 3;
inline void AsPrependAction::clear_use_left_most() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_left_most_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool AsPrependAction::use_left_most() const {
  // @@protoc_insertion_point(field_get:apipb.AsPrependAction.use_left_most)
  return _internal_use_left_most();
}
inline void AsPrependAction::set_use_left_most(bool value) {
  _internal_set_use_left_most(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.AsPrependAction.use_left_most)
}
inline bool AsPrependAction::_internal_use_left_most() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.use_left_most_;
}
inline void AsPrependAction::_internal_set_use_left_most(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_left_most_ = value;
}

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

// NexthopAction

// string address = 1;
inline void NexthopAction::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& NexthopAction::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.NexthopAction.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NexthopAction::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.NexthopAction.address)
}
inline ::std::string* PROTOBUF_NONNULL NexthopAction::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.NexthopAction.address)
  return _s;
}
inline const ::std::string& NexthopAction::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void NexthopAction::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NexthopAction::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NexthopAction::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.NexthopAction.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void NexthopAction::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.NexthopAction.address)
}

// bool self = 2;
inline void NexthopAction::clear_self() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.self_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool NexthopAction::self() const {
  // @@protoc_insertion_point(field_get:apipb.NexthopAction.self)
  return _internal_self();
}
inline void NexthopAction::set_self(bool value) {
  _internal_set_self(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.NexthopAction.self)
}
inline bool NexthopAction::_internal_self() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.self_;
}
inline void NexthopAction::_internal_set_self(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.self_ = value;
}

// bool unchanged = 3;
inline void NexthopAction::clear_unchanged() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.unchanged_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool NexthopAction::unchanged() const {
  // @@protoc_insertion_point(field_get:apipb.NexthopAction.unchanged)
  return _internal_unchanged();
}
inline void NexthopAction::set_unchanged(bool value) {
  _internal_set_unchanged(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.NexthopAction.unchanged)
}
inline bool NexthopAction::_internal_unchanged() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.unchanged_;
}
inline void NexthopAction::_internal_set_unchanged(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.unchanged_ = value;
}

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

// LocalPrefAction

// uint32 value = 1;
inline void LocalPrefAction::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t LocalPrefAction::value() const {
  // @@protoc_insertion_point(field_get:apipb.LocalPrefAction.value)
  return _internal_value();
}
inline void LocalPrefAction::set_value(::uint32_t value) {
  _internal_set_value(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.LocalPrefAction.value)
}
inline ::uint32_t LocalPrefAction::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_;
}
inline void LocalPrefAction::_internal_set_value(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = value;
}

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

// Actions

// .apipb.RouteAction route_action = 1;
inline void Actions::clear_route_action() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_action_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::apipb::RouteAction Actions::route_action() const {
  // @@protoc_insertion_point(field_get:apipb.Actions.route_action)
  return _internal_route_action();
}
inline void Actions::set_route_action(::apipb::RouteAction value) {
  _internal_set_route_action(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.Actions.route_action)
}
inline ::apipb::RouteAction Actions::_internal_route_action() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RouteAction>(_impl_.route_action_);
}
inline void Actions::_internal_set_route_action(::apipb::RouteAction value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.route_action_ = value;
}

// .apipb.CommunityAction community = 2;
inline bool Actions::has_community() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.community_ != nullptr);
  return value;
}
inline void Actions::clear_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.community_ != nullptr) _impl_.community_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::CommunityAction& Actions::_internal_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::CommunityAction* p = _impl_.community_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::CommunityAction>(&::apipb::CommunityAction_globals_);
}
inline const ::apipb::CommunityAction& Actions::community() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.community)
  return _internal_community();
}
inline void Actions::unsafe_arena_set_allocated_community(
    ::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.community_);
  }
  _impl_.community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.community)
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::release_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::CommunityAction* released = _impl_.community_;
  _impl_.community_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.community)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::CommunityAction* temp = _impl_.community_;
  _impl_.community_ = nullptr;
  return temp;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::_internal_mutable_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.community_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::CommunityAction>(GetArena());
    _impl_.community_ = reinterpret_cast<::apipb::CommunityAction*>(p);
  }
  return _impl_.community_;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::mutable_community()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::CommunityAction* _msg = _internal_mutable_community();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.community)
  return _msg;
}
inline void Actions::set_allocated_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.community_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.community)
}

// .apipb.MedAction med = 3;
inline bool Actions::has_med() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.med_ != nullptr);
  return value;
}
inline void Actions::clear_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.med_ != nullptr) _impl_.med_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::MedAction& Actions::_internal_med() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::MedAction* p = _impl_.med_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::MedAction>(&::apipb::MedAction_globals_);
}
inline const ::apipb::MedAction& Actions::med() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.med)
  return _internal_med();
}
inline void Actions::unsafe_arena_set_allocated_med(
    ::apipb::MedAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.med_);
  }
  _impl_.med_ = reinterpret_cast<::apipb::MedAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.med)
}
inline ::apipb::MedAction* PROTOBUF_NULLABLE Actions::release_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MedAction* released = _impl_.med_;
  _impl_.med_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::MedAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.med)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MedAction* temp = _impl_.med_;
  _impl_.med_ = nullptr;
  return temp;
}
inline ::apipb::MedAction* PROTOBUF_NONNULL Actions::_internal_mutable_med() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.med_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::MedAction>(GetArena());
    _impl_.med_ = reinterpret_cast<::apipb::MedAction*>(p);
  }
  return _impl_.med_;
}
inline ::apipb::MedAction* PROTOBUF_NONNULL Actions::mutable_med()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::MedAction* _msg = _internal_mutable_med();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.med)
  return _msg;
}
inline void Actions::set_allocated_med(::apipb::MedAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.med_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.med_ = reinterpret_cast<::apipb::MedAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.med)
}

// .apipb.AsPrependAction as_prepend = 4;
inline bool Actions::has_as_prepend() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.as_prepend_ != nullptr);
  return value;
}
inline void Actions::clear_as_prepend() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_prepend_ != nullptr) _impl_.as_prepend_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::AsPrependAction& Actions::_internal_as_prepend() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::AsPrependAction* p = _impl_.as_prepend_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::AsPrependAction>(&::apipb::AsPrependAction_globals_);
}
inline const ::apipb::AsPrependAction& Actions::as_prepend() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.as_prepend)
  return _internal_as_prepend();
}
inline void Actions::unsafe_arena_set_allocated_as_prepend(
    ::apipb::AsPrependAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_prepend_);
  }
  _impl_.as_prepend_ = reinterpret_cast<::apipb::AsPrependAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.as_prepend)
}
inline ::apipb::AsPrependAction* PROTOBUF_NULLABLE Actions::release_as_prepend() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AsPrependAction* released = _impl_.as_prepend_;
  _impl_.as_prepend_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::AsPrependAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_as_prepend() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.as_prepend)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AsPrependAction* temp = _impl_.as_prepend_;
  _impl_.as_prepend_ = nullptr;
  return temp;
}
inline ::apipb::AsPrependAction* PROTOBUF_NONNULL Actions::_internal_mutable_as_prepend() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.as_prepend_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::AsPrependAction>(GetArena());
    _impl_.as_prepend_ = reinterpret_cast<::apipb::AsPrependAction*>(p);
  }
  return _impl_.as_prepend_;
}
inline ::apipb::AsPrependAction* PROTOBUF_NONNULL Actions::mutable_as_prepend()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::AsPrependAction* _msg = _internal_mutable_as_prepend();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.as_prepend)
  return _msg;
}
inline void Actions::set_allocated_as_prepend(::apipb::AsPrependAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.as_prepend_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.as_prepend_ = reinterpret_cast<::apipb::AsPrependAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.as_prepend)
}

// .apipb.CommunityAction ext_community = 5;
inline bool Actions::has_ext_community() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.ext_community_ != nullptr);
  return value;
}
inline void Actions::clear_ext_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ext_community_ != nullptr) _impl_.ext_community_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::apipb::CommunityAction& Actions::_internal_ext_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::CommunityAction* p = _impl_.ext_community_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::CommunityAction>(&::apipb::CommunityAction_globals_);
}
inline const ::apipb::CommunityAction& Actions::ext_community() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.ext_community)
  return _internal_ext_community();
}
inline void Actions::unsafe_arena_set_allocated_ext_community(
    ::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ext_community_);
  }
  _impl_.ext_community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.ext_community)
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::release_ext_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::CommunityAction* released = _impl_.ext_community_;
  _impl_.ext_community_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_ext_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.ext_community)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::CommunityAction* temp = _impl_.ext_community_;
  _impl_.ext_community_ = nullptr;
  return temp;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::_internal_mutable_ext_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ext_community_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::CommunityAction>(GetArena());
    _impl_.ext_community_ = reinterpret_cast<::apipb::CommunityAction*>(p);
  }
  return _impl_.ext_community_;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::mutable_ext_community()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::apipb::CommunityAction* _msg = _internal_mutable_ext_community();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.ext_community)
  return _msg;
}
inline void Actions::set_allocated_ext_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ext_community_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.ext_community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.ext_community)
}

// .apipb.NexthopAction nexthop = 6;
inline bool Actions::has_nexthop() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.nexthop_ != nullptr);
  return value;
}
inline void Actions::clear_nexthop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.nexthop_ != nullptr) _impl_.nexthop_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::NexthopAction& Actions::_internal_nexthop() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::NexthopAction* p = _impl_.nexthop_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::NexthopAction>(&::apipb::NexthopAction_globals_);
}
inline const ::apipb::NexthopAction& Actions::nexthop() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.nexthop)
  return _internal_nexthop();
}
inline void Actions::unsafe_arena_set_allocated_nexthop(
    ::apipb::NexthopAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.nexthop_);
  }
  _impl_.nexthop_ = reinterpret_cast<::apipb::NexthopAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.nexthop)
}
inline ::apipb::NexthopAction* PROTOBUF_NULLABLE Actions::release_nexthop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::NexthopAction* released = _impl_.nexthop_;
  _impl_.nexthop_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::NexthopAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_nexthop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.nexthop)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::NexthopAction* temp = _impl_.nexthop_;
  _impl_.nexthop_ = nullptr;
  return temp;
}
inline ::apipb::NexthopAction* PROTOBUF_NONNULL Actions::_internal_mutable_nexthop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.nexthop_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::NexthopAction>(GetArena());
    _impl_.nexthop_ = reinterpret_cast<::apipb::NexthopAction*>(p);
  }
  return _impl_.nexthop_;
}
inline ::apipb::NexthopAction* PROTOBUF_NONNULL Actions::mutable_nexthop()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::NexthopAction* _msg = _internal_mutable_nexthop();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.nexthop)
  return _msg;
}
inline void Actions::set_allocated_nexthop(::apipb::NexthopAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.nexthop_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.nexthop_ = reinterpret_cast<::apipb::NexthopAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.nexthop)
}

// .apipb.LocalPrefAction local_pref = 7;
inline bool Actions::has_local_pref() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.local_pref_ != nullptr);
  return value;
}
inline void Actions::clear_local_pref() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.local_pref_ != nullptr) _impl_.local_pref_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::LocalPrefAction& Actions::_internal_local_pref() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::LocalPrefAction* p = _impl_.local_pref_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::LocalPrefAction>(&::apipb::LocalPrefAction_globals_);
}
inline const ::apipb::LocalPrefAction& Actions::local_pref() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.local_pref)
  return _internal_local_pref();
}
inline void Actions::unsafe_arena_set_allocated_local_pref(
    ::apipb::LocalPrefAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.local_pref_);
  }
  _impl_.local_pref_ = reinterpret_cast<::apipb::LocalPrefAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.local_pref)
}
inline ::apipb::LocalPrefAction* PROTOBUF_NULLABLE Actions::release_local_pref() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::LocalPrefAction* released = _impl_.local_pref_;
  _impl_.local_pref_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::LocalPrefAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_local_pref() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.local_pref)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::LocalPrefAction* temp = _impl_.local_pref_;
  _impl_.local_pref_ = nullptr;
  return temp;
}
inline ::apipb::LocalPrefAction* PROTOBUF_NONNULL Actions::_internal_mutable_local_pref() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.local_pref_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::LocalPrefAction>(GetArena());
    _impl_.local_pref_ = reinterpret_cast<::apipb::LocalPrefAction*>(p);
  }
  return _impl_.local_pref_;
}
inline ::apipb::LocalPrefAction* PROTOBUF_NONNULL Actions::mutable_local_pref()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::LocalPrefAction* _msg = _internal_mutable_local_pref();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.local_pref)
  return _msg;
}
inline void Actions::set_allocated_local_pref(::apipb::LocalPrefAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.local_pref_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.local_pref_ = reinterpret_cast<::apipb::LocalPrefAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.local_pref)
}

// .apipb.CommunityAction large_community = 8;
inline bool Actions::has_large_community() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.large_community_ != nullptr);
  return value;
}
inline void Actions::clear_large_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.large_community_ != nullptr) _impl_.large_community_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::CommunityAction& Actions::_internal_large_community() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::CommunityAction* p = _impl_.large_community_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::CommunityAction>(&::apipb::CommunityAction_globals_);
}
inline const ::apipb::CommunityAction& Actions::large_community() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Actions.large_community)
  return _internal_large_community();
}
inline void Actions::unsafe_arena_set_allocated_large_community(
    ::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.large_community_);
  }
  _impl_.large_community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Actions.large_community)
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::release_large_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::CommunityAction* released = _impl_.large_community_;
  _impl_.large_community_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::CommunityAction* PROTOBUF_NULLABLE Actions::unsafe_arena_release_large_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Actions.large_community)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::CommunityAction* temp = _impl_.large_community_;
  _impl_.large_community_ = nullptr;
  return temp;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::_internal_mutable_large_community() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.large_community_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::CommunityAction>(GetArena());
    _impl_.large_community_ = reinterpret_cast<::apipb::CommunityAction*>(p);
  }
  return _impl_.large_community_;
}
inline ::apipb::CommunityAction* PROTOBUF_NONNULL Actions::mutable_large_community()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::CommunityAction* _msg = _internal_mutable_large_community();
  // @@protoc_insertion_point(field_mutable:apipb.Actions.large_community)
  return _msg;
}
inline void Actions::set_allocated_large_community(::apipb::CommunityAction* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.large_community_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.large_community_ = reinterpret_cast<::apipb::CommunityAction*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Actions.large_community)
}

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

// Statement

// string name = 1;
inline void Statement::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Statement::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Statement.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Statement::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Statement.name)
}
inline ::std::string* PROTOBUF_NONNULL Statement::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.Statement.name)
  return _s;
}
inline const ::std::string& Statement::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Statement::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Statement::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Statement::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Statement.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Statement::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Statement.name)
}

// .apipb.Conditions conditions = 2;
inline bool Statement::has_conditions() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.conditions_ != nullptr);
  return value;
}
inline void Statement::clear_conditions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conditions_ != nullptr) _impl_.conditions_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Conditions& Statement::_internal_conditions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Conditions* p = _impl_.conditions_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Conditions>(&::apipb::Conditions_globals_);
}
inline const ::apipb::Conditions& Statement::conditions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Statement.conditions)
  return _internal_conditions();
}
inline void Statement::unsafe_arena_set_allocated_conditions(
    ::apipb::Conditions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conditions_);
  }
  _impl_.conditions_ = reinterpret_cast<::apipb::Conditions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Statement.conditions)
}
inline ::apipb::Conditions* PROTOBUF_NULLABLE Statement::release_conditions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Conditions* released = _impl_.conditions_;
  _impl_.conditions_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Conditions* PROTOBUF_NULLABLE Statement::unsafe_arena_release_conditions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Statement.conditions)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Conditions* temp = _impl_.conditions_;
  _impl_.conditions_ = nullptr;
  return temp;
}
inline ::apipb::Conditions* PROTOBUF_NONNULL Statement::_internal_mutable_conditions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conditions_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Conditions>(GetArena());
    _impl_.conditions_ = reinterpret_cast<::apipb::Conditions*>(p);
  }
  return _impl_.conditions_;
}
inline ::apipb::Conditions* PROTOBUF_NONNULL Statement::mutable_conditions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::Conditions* _msg = _internal_mutable_conditions();
  // @@protoc_insertion_point(field_mutable:apipb.Statement.conditions)
  return _msg;
}
inline void Statement::set_allocated_conditions(::apipb::Conditions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conditions_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.conditions_ = reinterpret_cast<::apipb::Conditions*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Statement.conditions)
}

// .apipb.Actions actions = 3;
inline bool Statement::has_actions() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.actions_ != nullptr);
  return value;
}
inline void Statement::clear_actions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.actions_ != nullptr) _impl_.actions_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::apipb::Actions& Statement::_internal_actions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Actions* p = _impl_.actions_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Actions>(&::apipb::Actions_globals_);
}
inline const ::apipb::Actions& Statement::actions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Statement.actions)
  return _internal_actions();
}
inline void Statement::unsafe_arena_set_allocated_actions(
    ::apipb::Actions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.actions_);
  }
  _impl_.actions_ = reinterpret_cast<::apipb::Actions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Statement.actions)
}
inline ::apipb::Actions* PROTOBUF_NULLABLE Statement::release_actions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Actions* released = _impl_.actions_;
  _impl_.actions_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Actions* PROTOBUF_NULLABLE Statement::unsafe_arena_release_actions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Statement.actions)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Actions* temp = _impl_.actions_;
  _impl_.actions_ = nullptr;
  return temp;
}
inline ::apipb::Actions* PROTOBUF_NONNULL Statement::_internal_mutable_actions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.actions_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Actions>(GetArena());
    _impl_.actions_ = reinterpret_cast<::apipb::Actions*>(p);
  }
  return _impl_.actions_;
}
inline ::apipb::Actions* PROTOBUF_NONNULL Statement::mutable_actions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::apipb::Actions* _msg = _internal_mutable_actions();
  // @@protoc_insertion_point(field_mutable:apipb.Statement.actions)
  return _msg;
}
inline void Statement::set_allocated_actions(::apipb::Actions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.actions_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.actions_ = reinterpret_cast<::apipb::Actions*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Statement.actions)
}

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

// Policy

// string name = 1;
inline void Policy::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Policy::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Policy.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Policy::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Policy.name)
}
inline ::std::string* PROTOBUF_NONNULL Policy::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.Policy.name)
  return _s;
}
inline const ::std::string& Policy::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Policy::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Policy::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Policy::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Policy.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Policy::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Policy.name)
}

// repeated .apipb.Statement statements = 2;
inline int Policy::_internal_statements_size() const {
  return _internal_statements().size();
}
inline int Policy::statements_size() const {
  return _internal_statements_size();
}
inline void Policy::clear_statements() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.statements_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Statement& Policy::statements(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Policy.statements)
  return _internal_statements().Get(index);
}
inline ::apipb::Statement* PROTOBUF_NONNULL Policy::mutable_statements(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Policy.statements)
  return _internal_mutable_statements()->Mutable(index);
}
inline ::apipb::Statement* PROTOBUF_NONNULL Policy::add_statements()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Statement* _add =
      _internal_mutable_statements()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Policy.statements)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Statement>& Policy::statements() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Policy.statements)
  return _internal_statements();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Statement>* PROTOBUF_NONNULL
Policy::mutable_statements() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Policy.statements)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_statements();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Statement>&
Policy::_internal_statements() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.statements_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Statement>* PROTOBUF_NONNULL
Policy::_internal_mutable_statements() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.statements_;
}

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

// PolicyAssignment

// string name = 1;
inline void PolicyAssignment::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PolicyAssignment::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PolicyAssignment.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PolicyAssignment::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.PolicyAssignment.name)
}
inline ::std::string* PROTOBUF_NONNULL PolicyAssignment::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.PolicyAssignment.name)
  return _s;
}
inline const ::std::string& PolicyAssignment::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void PolicyAssignment::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PolicyAssignment::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PolicyAssignment::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.PolicyAssignment.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void PolicyAssignment::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.PolicyAssignment.name)
}

// .apipb.PolicyDirection direction = 2;
inline void PolicyAssignment::clear_direction() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::apipb::PolicyDirection PolicyAssignment::direction() const {
  // @@protoc_insertion_point(field_get:apipb.PolicyAssignment.direction)
  return _internal_direction();
}
inline void PolicyAssignment::set_direction(::apipb::PolicyDirection value) {
  _internal_set_direction(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.PolicyAssignment.direction)
}
inline ::apipb::PolicyDirection PolicyAssignment::_internal_direction() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::PolicyDirection>(_impl_.direction_);
}
inline void PolicyAssignment::_internal_set_direction(::apipb::PolicyDirection value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.direction_ = value;
}

// repeated .apipb.Policy policies = 4;
inline int PolicyAssignment::_internal_policies_size() const {
  return _internal_policies().size();
}
inline int PolicyAssignment::policies_size() const {
  return _internal_policies_size();
}
inline void PolicyAssignment::clear_policies() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.policies_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::Policy& PolicyAssignment::policies(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.PolicyAssignment.policies)
  return _internal_policies().Get(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL PolicyAssignment::mutable_policies(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.PolicyAssignment.policies)
  return _internal_mutable_policies()->Mutable(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL PolicyAssignment::add_policies()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Policy* _add =
      _internal_mutable_policies()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.PolicyAssignment.policies)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& PolicyAssignment::policies() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.PolicyAssignment.policies)
  return _internal_policies();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
PolicyAssignment::mutable_policies() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.PolicyAssignment.policies)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_policies();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
PolicyAssignment::_internal_policies() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.policies_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
PolicyAssignment::_internal_mutable_policies() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.policies_;
}

// .apipb.RouteAction default_action = 5;
inline void PolicyAssignment::clear_default_action() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.default_action_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::apipb::RouteAction PolicyAssignment::default_action() const {
  // @@protoc_insertion_point(field_get:apipb.PolicyAssignment.default_action)
  return _internal_default_action();
}
inline void PolicyAssignment::set_default_action(::apipb::RouteAction value) {
  _internal_set_default_action(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.PolicyAssignment.default_action)
}
inline ::apipb::RouteAction PolicyAssignment::_internal_default_action() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::RouteAction>(_impl_.default_action_);
}
inline void PolicyAssignment::_internal_set_default_action(::apipb::RouteAction value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.default_action_ = value;
}

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

// RoutingPolicy

// repeated .apipb.DefinedSet defined_sets = 1;
inline int RoutingPolicy::_internal_defined_sets_size() const {
  return _internal_defined_sets().size();
}
inline int RoutingPolicy::defined_sets_size() const {
  return _internal_defined_sets_size();
}
inline void RoutingPolicy::clear_defined_sets() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.defined_sets_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::DefinedSet& RoutingPolicy::defined_sets(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RoutingPolicy.defined_sets)
  return _internal_defined_sets().Get(index);
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL RoutingPolicy::mutable_defined_sets(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.RoutingPolicy.defined_sets)
  return _internal_mutable_defined_sets()->Mutable(index);
}
inline ::apipb::DefinedSet* PROTOBUF_NONNULL RoutingPolicy::add_defined_sets()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::DefinedSet* _add =
      _internal_mutable_defined_sets()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.RoutingPolicy.defined_sets)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>& RoutingPolicy::defined_sets() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.RoutingPolicy.defined_sets)
  return _internal_defined_sets();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
RoutingPolicy::mutable_defined_sets() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.RoutingPolicy.defined_sets)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_defined_sets();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>&
RoutingPolicy::_internal_defined_sets() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.defined_sets_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::DefinedSet>* PROTOBUF_NONNULL
RoutingPolicy::_internal_mutable_defined_sets() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.defined_sets_;
}

// repeated .apipb.Policy policies = 2;
inline int RoutingPolicy::_internal_policies_size() const {
  return _internal_policies().size();
}
inline int RoutingPolicy::policies_size() const {
  return _internal_policies_size();
}
inline void RoutingPolicy::clear_policies() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.policies_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::Policy& RoutingPolicy::policies(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RoutingPolicy.policies)
  return _internal_policies().Get(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL RoutingPolicy::mutable_policies(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.RoutingPolicy.policies)
  return _internal_mutable_policies()->Mutable(index);
}
inline ::apipb::Policy* PROTOBUF_NONNULL RoutingPolicy::add_policies()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::apipb::Policy* _add =
      _internal_mutable_policies()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.RoutingPolicy.policies)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>& RoutingPolicy::policies() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.RoutingPolicy.policies)
  return _internal_policies();
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
RoutingPolicy::mutable_policies() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.RoutingPolicy.policies)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_policies();
}
inline const ::google::protobuf::RepeatedPtrField<::apipb::Policy>&
RoutingPolicy::_internal_policies() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.policies_;
}
inline ::google::protobuf::RepeatedPtrField<::apipb::Policy>* PROTOBUF_NONNULL
RoutingPolicy::_internal_mutable_policies() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.policies_;
}

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

// Roa

// uint32 asn = 1;
inline void Roa::clear_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t Roa::asn() const {
  // @@protoc_insertion_point(field_get:apipb.Roa.asn)
  return _internal_asn();
}
inline void Roa::set_asn(::uint32_t value) {
  _internal_set_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.Roa.asn)
}
inline ::uint32_t Roa::_internal_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.asn_;
}
inline void Roa::_internal_set_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = value;
}

// uint32 prefixlen = 2;
inline void Roa::clear_prefixlen() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefixlen_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t Roa::prefixlen() const {
  // @@protoc_insertion_point(field_get:apipb.Roa.prefixlen)
  return _internal_prefixlen();
}
inline void Roa::set_prefixlen(::uint32_t value) {
  _internal_set_prefixlen(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.Roa.prefixlen)
}
inline ::uint32_t Roa::_internal_prefixlen() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefixlen_;
}
inline void Roa::_internal_set_prefixlen(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefixlen_ = value;
}

// uint32 maxlen = 3;
inline void Roa::clear_maxlen() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maxlen_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t Roa::maxlen() const {
  // @@protoc_insertion_point(field_get:apipb.Roa.maxlen)
  return _internal_maxlen();
}
inline void Roa::set_maxlen(::uint32_t value) {
  _internal_set_maxlen(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.Roa.maxlen)
}
inline ::uint32_t Roa::_internal_maxlen() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maxlen_;
}
inline void Roa::_internal_set_maxlen(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maxlen_ = value;
}

// string prefix = 4;
inline void Roa::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Roa::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Roa.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Roa::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Roa.prefix)
}
inline ::std::string* PROTOBUF_NONNULL Roa::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:apipb.Roa.prefix)
  return _s;
}
inline const ::std::string& Roa::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void Roa::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Roa::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Roa::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Roa.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void Roa::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Roa.prefix)
}

// .apipb.RPKIConf conf = 5;
inline bool Roa::has_conf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.conf_ != nullptr);
  return value;
}
inline void Roa::clear_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ != nullptr) _impl_.conf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::RPKIConf& Roa::_internal_conf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RPKIConf* p = _impl_.conf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RPKIConf>(&::apipb::RPKIConf_globals_);
}
inline const ::apipb::RPKIConf& Roa::conf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Roa.conf)
  return _internal_conf();
}
inline void Roa::unsafe_arena_set_allocated_conf(
    ::apipb::RPKIConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }
  _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Roa.conf)
}
inline ::apipb::RPKIConf* PROTOBUF_NULLABLE Roa::release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIConf* released = _impl_.conf_;
  _impl_.conf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RPKIConf* PROTOBUF_NULLABLE Roa::unsafe_arena_release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Roa.conf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIConf* temp = _impl_.conf_;
  _impl_.conf_ = nullptr;
  return temp;
}
inline ::apipb::RPKIConf* PROTOBUF_NONNULL Roa::_internal_mutable_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RPKIConf>(GetArena());
    _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(p);
  }
  return _impl_.conf_;
}
inline ::apipb::RPKIConf* PROTOBUF_NONNULL Roa::mutable_conf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIConf* _msg = _internal_mutable_conf();
  // @@protoc_insertion_point(field_mutable:apipb.Roa.conf)
  return _msg;
}
inline void Roa::set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Roa.conf)
}

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

// Vrf

// string name = 1;
inline void Vrf::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Vrf::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Vrf.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Vrf::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Vrf.name)
}
inline ::std::string* PROTOBUF_NONNULL Vrf::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:apipb.Vrf.name)
  return _s;
}
inline const ::std::string& Vrf::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Vrf::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Vrf::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Vrf::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Vrf.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Vrf::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Vrf.name)
}

// .google.protobuf.Any rd = 2;
inline bool Vrf::has_rd() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.rd_ != nullptr);
  return value;
}
inline const ::google::protobuf::Any& Vrf::_internal_rd() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Any* p = _impl_.rd_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Any>(&::google::protobuf::Any_globals_);
}
inline const ::google::protobuf::Any& Vrf::rd() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Vrf.rd)
  return _internal_rd();
}
inline void Vrf::unsafe_arena_set_allocated_rd(
    ::google::protobuf::Any* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rd_);
  }
  _impl_.rd_ = reinterpret_cast<::google::protobuf::Any*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Vrf.rd)
}
inline ::google::protobuf::Any* PROTOBUF_NULLABLE Vrf::release_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Any* released = _impl_.rd_;
  _impl_.rd_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Any* PROTOBUF_NULLABLE Vrf::unsafe_arena_release_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Vrf.rd)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Any* temp = _impl_.rd_;
  _impl_.rd_ = nullptr;
  return temp;
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::_internal_mutable_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Any>(GetArena());
    _impl_.rd_ = reinterpret_cast<::google::protobuf::Any*>(p);
  }
  return _impl_.rd_;
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::mutable_rd()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Any* _msg = _internal_mutable_rd();
  // @@protoc_insertion_point(field_mutable:apipb.Vrf.rd)
  return _msg;
}
inline void Vrf::set_allocated_rd(::google::protobuf::Any* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.rd_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.rd_ = reinterpret_cast<::google::protobuf::Any*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Vrf.rd)
}

// repeated .google.protobuf.Any import_rt = 3;
inline int Vrf::_internal_import_rt_size() const {
  return _internal_import_rt().size();
}
inline int Vrf::import_rt_size() const {
  return _internal_import_rt_size();
}
inline const ::google::protobuf::Any& Vrf::import_rt(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Vrf.import_rt)
  return _internal_import_rt().Get(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::mutable_import_rt(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Vrf.import_rt)
  return _internal_mutable_import_rt()->Mutable(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::add_import_rt()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::Any* _add =
      _internal_mutable_import_rt()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Vrf.import_rt)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& Vrf::import_rt() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Vrf.import_rt)
  return _internal_import_rt();
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Vrf::mutable_import_rt() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Vrf.import_rt)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_import_rt();
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
Vrf::_internal_import_rt() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.import_rt_;
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Vrf::_internal_mutable_import_rt() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.import_rt_;
}

// repeated .google.protobuf.Any export_rt = 4;
inline int Vrf::_internal_export_rt_size() const {
  return _internal_export_rt().size();
}
inline int Vrf::export_rt_size() const {
  return _internal_export_rt_size();
}
inline const ::google::protobuf::Any& Vrf::export_rt(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Vrf.export_rt)
  return _internal_export_rt().Get(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::mutable_export_rt(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Vrf.export_rt)
  return _internal_mutable_export_rt()->Mutable(index);
}
inline ::google::protobuf::Any* PROTOBUF_NONNULL Vrf::add_export_rt()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::Any* _add =
      _internal_mutable_export_rt()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.Vrf.export_rt)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& Vrf::export_rt() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Vrf.export_rt)
  return _internal_export_rt();
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Vrf::mutable_export_rt() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Vrf.export_rt)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_export_rt();
}
inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
Vrf::_internal_export_rt() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.export_rt_;
}
inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* PROTOBUF_NONNULL
Vrf::_internal_mutable_export_rt() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.export_rt_;
}

// uint32 id = 5;
inline void Vrf::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t Vrf::id() const {
  // @@protoc_insertion_point(field_get:apipb.Vrf.id)
  return _internal_id();
}
inline void Vrf::set_id(::uint32_t value) {
  _internal_set_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.Vrf.id)
}
inline ::uint32_t Vrf::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_;
}
inline void Vrf::_internal_set_id(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = value;
}

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

// DefaultRouteDistance

// uint32 external_route_distance = 1;
inline void DefaultRouteDistance::clear_external_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_route_distance_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t DefaultRouteDistance::external_route_distance() const {
  // @@protoc_insertion_point(field_get:apipb.DefaultRouteDistance.external_route_distance)
  return _internal_external_route_distance();
}
inline void DefaultRouteDistance::set_external_route_distance(::uint32_t value) {
  _internal_set_external_route_distance(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.DefaultRouteDistance.external_route_distance)
}
inline ::uint32_t DefaultRouteDistance::_internal_external_route_distance() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.external_route_distance_;
}
inline void DefaultRouteDistance::_internal_set_external_route_distance(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.external_route_distance_ = value;
}

// uint32 internal_route_distance = 2;
inline void DefaultRouteDistance::clear_internal_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.internal_route_distance_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t DefaultRouteDistance::internal_route_distance() const {
  // @@protoc_insertion_point(field_get:apipb.DefaultRouteDistance.internal_route_distance)
  return _internal_internal_route_distance();
}
inline void DefaultRouteDistance::set_internal_route_distance(::uint32_t value) {
  _internal_set_internal_route_distance(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.DefaultRouteDistance.internal_route_distance)
}
inline ::uint32_t DefaultRouteDistance::_internal_internal_route_distance() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.internal_route_distance_;
}
inline void DefaultRouteDistance::_internal_set_internal_route_distance(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.internal_route_distance_ = value;
}

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

// Global

// uint32 asn = 1;
inline void Global::clear_asn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t Global::asn() const {
  // @@protoc_insertion_point(field_get:apipb.Global.asn)
  return _internal_asn();
}
inline void Global::set_asn(::uint32_t value) {
  _internal_set_asn(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.Global.asn)
}
inline ::uint32_t Global::_internal_asn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.asn_;
}
inline void Global::_internal_set_asn(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.asn_ = value;
}

// string router_id = 2;
inline void Global::clear_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.router_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Global::router_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.router_id)
  return _internal_router_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Global::set_router_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.router_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Global.router_id)
}
inline ::std::string* PROTOBUF_NONNULL Global::mutable_router_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_router_id();
  // @@protoc_insertion_point(field_mutable:apipb.Global.router_id)
  return _s;
}
inline const ::std::string& Global::_internal_router_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.router_id_.Get();
}
inline void Global::_internal_set_router_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.router_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Global::_internal_mutable_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.router_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Global::release_router_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.router_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.router_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.router_id_.Set("", GetArena());
  }
  return released;
}
inline void Global::set_allocated_router_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.router_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.router_id_.IsDefault()) {
    _impl_.router_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.router_id)
}

// int32 listen_port = 3;
inline void Global::clear_listen_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.listen_port_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::int32_t Global::listen_port() const {
  // @@protoc_insertion_point(field_get:apipb.Global.listen_port)
  return _internal_listen_port();
}
inline void Global::set_listen_port(::int32_t value) {
  _internal_set_listen_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.Global.listen_port)
}
inline ::int32_t Global::_internal_listen_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.listen_port_;
}
inline void Global::_internal_set_listen_port(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.listen_port_ = value;
}

// repeated string listen_addresses = 4;
inline int Global::_internal_listen_addresses_size() const {
  return _internal_listen_addresses().size();
}
inline int Global::listen_addresses_size() const {
  return _internal_listen_addresses_size();
}
inline void Global::clear_listen_addresses() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.listen_addresses_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL Global::add_listen_addresses()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_listen_addresses()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:apipb.Global.listen_addresses)
  return _s;
}
inline const ::std::string& Global::listen_addresses(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.listen_addresses)
  return _internal_listen_addresses().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Global::mutable_listen_addresses(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:apipb.Global.listen_addresses)
  return _internal_mutable_listen_addresses()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Global::set_listen_addresses(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_listen_addresses()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:apipb.Global.listen_addresses)
}
template <typename Arg_, typename... Args_>
inline void Global::add_listen_addresses(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_listen_addresses(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Global.listen_addresses)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Global::listen_addresses()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Global.listen_addresses)
  return _internal_listen_addresses();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Global::mutable_listen_addresses() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Global.listen_addresses)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_listen_addresses();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Global::_internal_listen_addresses() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.listen_addresses_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Global::_internal_mutable_listen_addresses() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.listen_addresses_;
}

// repeated uint32 families = 5;
inline int Global::_internal_families_size() const {
  return _internal_families().size();
}
inline int Global::families_size() const {
  return _internal_families_size();
}
inline void Global::clear_families() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.families_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t Global::families(int index) const {
  // @@protoc_insertion_point(field_get:apipb.Global.families)
  return _internal_families().Get(index);
}
inline void Global::set_families(int index, ::uint32_t value) {
  _internal_mutable_families()->Set(index, value);
  // @@protoc_insertion_point(field_set:apipb.Global.families)
}
inline void Global::add_families(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_families()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:apipb.Global.families)
}
inline const ::google::protobuf::RepeatedField<::uint32_t>& Global::families() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Global.families)
  return _internal_families();
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL Global::mutable_families()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Global.families)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_families();
}
inline const ::google::protobuf::RepeatedField<::uint32_t>&
Global::_internal_families() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.families_;
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL
Global::_internal_mutable_families() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.families_;
}

// bool use_multiple_paths = 6;
inline void Global::clear_use_multiple_paths() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_multiple_paths_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline bool Global::use_multiple_paths() const {
  // @@protoc_insertion_point(field_get:apipb.Global.use_multiple_paths)
  return _internal_use_multiple_paths();
}
inline void Global::set_use_multiple_paths(bool value) {
  _internal_set_use_multiple_paths(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:apipb.Global.use_multiple_paths)
}
inline bool Global::_internal_use_multiple_paths() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.use_multiple_paths_;
}
inline void Global::_internal_set_use_multiple_paths(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_multiple_paths_ = value;
}

// .apipb.RouteSelectionOptionsConfig route_selection_options = 7;
inline bool Global::has_route_selection_options() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.route_selection_options_ != nullptr);
  return value;
}
inline void Global::clear_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_selection_options_ != nullptr) _impl_.route_selection_options_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::apipb::RouteSelectionOptionsConfig& Global::_internal_route_selection_options() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RouteSelectionOptionsConfig* p = _impl_.route_selection_options_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RouteSelectionOptionsConfig>(&::apipb::RouteSelectionOptionsConfig_globals_);
}
inline const ::apipb::RouteSelectionOptionsConfig& Global::route_selection_options() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.route_selection_options)
  return _internal_route_selection_options();
}
inline void Global::unsafe_arena_set_allocated_route_selection_options(
    ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_selection_options_);
  }
  _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Global.route_selection_options)
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE Global::release_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptionsConfig* released = _impl_.route_selection_options_;
  _impl_.route_selection_options_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE Global::unsafe_arena_release_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.route_selection_options)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptionsConfig* temp = _impl_.route_selection_options_;
  _impl_.route_selection_options_ = nullptr;
  return temp;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL Global::_internal_mutable_route_selection_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.route_selection_options_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RouteSelectionOptionsConfig>(GetArena());
    _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(p);
  }
  return _impl_.route_selection_options_;
}
inline ::apipb::RouteSelectionOptionsConfig* PROTOBUF_NONNULL Global::mutable_route_selection_options()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::apipb::RouteSelectionOptionsConfig* _msg = _internal_mutable_route_selection_options();
  // @@protoc_insertion_point(field_mutable:apipb.Global.route_selection_options)
  return _msg;
}
inline void Global::set_allocated_route_selection_options(::apipb::RouteSelectionOptionsConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.route_selection_options_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.route_selection_options_ = reinterpret_cast<::apipb::RouteSelectionOptionsConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.route_selection_options)
}

// .apipb.DefaultRouteDistance default_route_distance = 8;
inline bool Global::has_default_route_distance() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.default_route_distance_ != nullptr);
  return value;
}
inline void Global::clear_default_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.default_route_distance_ != nullptr) _impl_.default_route_distance_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::apipb::DefaultRouteDistance& Global::_internal_default_route_distance() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::DefaultRouteDistance* p = _impl_.default_route_distance_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::DefaultRouteDistance>(&::apipb::DefaultRouteDistance_globals_);
}
inline const ::apipb::DefaultRouteDistance& Global::default_route_distance() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.default_route_distance)
  return _internal_default_route_distance();
}
inline void Global::unsafe_arena_set_allocated_default_route_distance(
    ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.default_route_distance_);
  }
  _impl_.default_route_distance_ = reinterpret_cast<::apipb::DefaultRouteDistance*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Global.default_route_distance)
}
inline ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE Global::release_default_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::DefaultRouteDistance* released = _impl_.default_route_distance_;
  _impl_.default_route_distance_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE Global::unsafe_arena_release_default_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.default_route_distance)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::DefaultRouteDistance* temp = _impl_.default_route_distance_;
  _impl_.default_route_distance_ = nullptr;
  return temp;
}
inline ::apipb::DefaultRouteDistance* PROTOBUF_NONNULL Global::_internal_mutable_default_route_distance() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.default_route_distance_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::DefaultRouteDistance>(GetArena());
    _impl_.default_route_distance_ = reinterpret_cast<::apipb::DefaultRouteDistance*>(p);
  }
  return _impl_.default_route_distance_;
}
inline ::apipb::DefaultRouteDistance* PROTOBUF_NONNULL Global::mutable_default_route_distance()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::apipb::DefaultRouteDistance* _msg = _internal_mutable_default_route_distance();
  // @@protoc_insertion_point(field_mutable:apipb.Global.default_route_distance)
  return _msg;
}
inline void Global::set_allocated_default_route_distance(::apipb::DefaultRouteDistance* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.default_route_distance_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.default_route_distance_ = reinterpret_cast<::apipb::DefaultRouteDistance*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.default_route_distance)
}

// .apipb.Confederation confederation = 9;
inline bool Global::has_confederation() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.confederation_ != nullptr);
  return value;
}
inline void Global::clear_confederation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.confederation_ != nullptr) _impl_.confederation_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::apipb::Confederation& Global::_internal_confederation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::Confederation* p = _impl_.confederation_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::Confederation>(&::apipb::Confederation_globals_);
}
inline const ::apipb::Confederation& Global::confederation() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.confederation)
  return _internal_confederation();
}
inline void Global::unsafe_arena_set_allocated_confederation(
    ::apipb::Confederation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.confederation_);
  }
  _impl_.confederation_ = reinterpret_cast<::apipb::Confederation*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Global.confederation)
}
inline ::apipb::Confederation* PROTOBUF_NULLABLE Global::release_confederation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Confederation* released = _impl_.confederation_;
  _impl_.confederation_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::Confederation* PROTOBUF_NULLABLE Global::unsafe_arena_release_confederation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.confederation)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Confederation* temp = _impl_.confederation_;
  _impl_.confederation_ = nullptr;
  return temp;
}
inline ::apipb::Confederation* PROTOBUF_NONNULL Global::_internal_mutable_confederation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.confederation_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::Confederation>(GetArena());
    _impl_.confederation_ = reinterpret_cast<::apipb::Confederation*>(p);
  }
  return _impl_.confederation_;
}
inline ::apipb::Confederation* PROTOBUF_NONNULL Global::mutable_confederation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::apipb::Confederation* _msg = _internal_mutable_confederation();
  // @@protoc_insertion_point(field_mutable:apipb.Global.confederation)
  return _msg;
}
inline void Global::set_allocated_confederation(::apipb::Confederation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.confederation_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.confederation_ = reinterpret_cast<::apipb::Confederation*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.confederation)
}

// .apipb.GracefulRestart graceful_restart = 10;
inline bool Global::has_graceful_restart() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.graceful_restart_ != nullptr);
  return value;
}
inline void Global::clear_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ != nullptr) _impl_.graceful_restart_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::apipb::GracefulRestart& Global::_internal_graceful_restart() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::GracefulRestart* p = _impl_.graceful_restart_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::GracefulRestart>(&::apipb::GracefulRestart_globals_);
}
inline const ::apipb::GracefulRestart& Global::graceful_restart() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.graceful_restart)
  return _internal_graceful_restart();
}
inline void Global::unsafe_arena_set_allocated_graceful_restart(
    ::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }
  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Global.graceful_restart)
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE Global::release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::GracefulRestart* released = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::GracefulRestart* PROTOBUF_NULLABLE Global::unsafe_arena_release_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.graceful_restart)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::GracefulRestart* temp = _impl_.graceful_restart_;
  _impl_.graceful_restart_ = nullptr;
  return temp;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL Global::_internal_mutable_graceful_restart() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.graceful_restart_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::GracefulRestart>(GetArena());
    _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(p);
  }
  return _impl_.graceful_restart_;
}
inline ::apipb::GracefulRestart* PROTOBUF_NONNULL Global::mutable_graceful_restart()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::apipb::GracefulRestart* _msg = _internal_mutable_graceful_restart();
  // @@protoc_insertion_point(field_mutable:apipb.Global.graceful_restart)
  return _msg;
}
inline void Global::set_allocated_graceful_restart(::apipb::GracefulRestart* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.graceful_restart_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.graceful_restart_ = reinterpret_cast<::apipb::GracefulRestart*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.graceful_restart)
}

// .apipb.ApplyPolicy apply_policy = 11;
inline bool Global::has_apply_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.apply_policy_ != nullptr);
  return value;
}
inline void Global::clear_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ != nullptr) _impl_.apply_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::apipb::ApplyPolicy& Global::_internal_apply_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::ApplyPolicy* p = _impl_.apply_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::ApplyPolicy>(&::apipb::ApplyPolicy_globals_);
}
inline const ::apipb::ApplyPolicy& Global::apply_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.apply_policy)
  return _internal_apply_policy();
}
inline void Global::unsafe_arena_set_allocated_apply_policy(
    ::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }
  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Global.apply_policy)
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE Global::release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::ApplyPolicy* released = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NULLABLE Global::unsafe_arena_release_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.apply_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::ApplyPolicy* temp = _impl_.apply_policy_;
  _impl_.apply_policy_ = nullptr;
  return temp;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL Global::_internal_mutable_apply_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.apply_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::ApplyPolicy>(GetArena());
    _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(p);
  }
  return _impl_.apply_policy_;
}
inline ::apipb::ApplyPolicy* PROTOBUF_NONNULL Global::mutable_apply_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::apipb::ApplyPolicy* _msg = _internal_mutable_apply_policy();
  // @@protoc_insertion_point(field_mutable:apipb.Global.apply_policy)
  return _msg;
}
inline void Global::set_allocated_apply_policy(::apipb::ApplyPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.apply_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.apply_policy_ = reinterpret_cast<::apipb::ApplyPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.apply_policy)
}

// string bind_to_device = 12;
inline void Global::clear_bind_to_device() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bind_to_device_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& Global::bind_to_device() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Global.bind_to_device)
  return _internal_bind_to_device();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Global::set_bind_to_device(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.bind_to_device_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.Global.bind_to_device)
}
inline ::std::string* PROTOBUF_NONNULL Global::mutable_bind_to_device()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_bind_to_device();
  // @@protoc_insertion_point(field_mutable:apipb.Global.bind_to_device)
  return _s;
}
inline const ::std::string& Global::_internal_bind_to_device() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bind_to_device_.Get();
}
inline void Global::_internal_set_bind_to_device(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bind_to_device_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Global::_internal_mutable_bind_to_device() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.bind_to_device_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Global::release_bind_to_device() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Global.bind_to_device)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.bind_to_device_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.bind_to_device_.Set("", GetArena());
  }
  return released;
}
inline void Global::set_allocated_bind_to_device(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.bind_to_device_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.bind_to_device_.IsDefault()) {
    _impl_.bind_to_device_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.Global.bind_to_device)
}

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

// Confederation

// bool enabled = 1;
inline void Confederation::clear_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool Confederation::enabled() const {
  // @@protoc_insertion_point(field_get:apipb.Confederation.enabled)
  return _internal_enabled();
}
inline void Confederation::set_enabled(bool value) {
  _internal_set_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.Confederation.enabled)
}
inline bool Confederation::_internal_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enabled_;
}
inline void Confederation::_internal_set_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enabled_ = value;
}

// uint32 identifier = 2;
inline void Confederation::clear_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.identifier_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t Confederation::identifier() const {
  // @@protoc_insertion_point(field_get:apipb.Confederation.identifier)
  return _internal_identifier();
}
inline void Confederation::set_identifier(::uint32_t value) {
  _internal_set_identifier(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.Confederation.identifier)
}
inline ::uint32_t Confederation::_internal_identifier() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.identifier_;
}
inline void Confederation::_internal_set_identifier(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.identifier_ = value;
}

// repeated uint32 member_as_list = 3;
inline int Confederation::_internal_member_as_list_size() const {
  return _internal_member_as_list().size();
}
inline int Confederation::member_as_list_size() const {
  return _internal_member_as_list_size();
}
inline void Confederation::clear_member_as_list() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.member_as_list_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t Confederation::member_as_list(int index) const {
  // @@protoc_insertion_point(field_get:apipb.Confederation.member_as_list)
  return _internal_member_as_list().Get(index);
}
inline void Confederation::set_member_as_list(int index, ::uint32_t value) {
  _internal_mutable_member_as_list()->Set(index, value);
  // @@protoc_insertion_point(field_set:apipb.Confederation.member_as_list)
}
inline void Confederation::add_member_as_list(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_member_as_list()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:apipb.Confederation.member_as_list)
}
inline const ::google::protobuf::RepeatedField<::uint32_t>& Confederation::member_as_list() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:apipb.Confederation.member_as_list)
  return _internal_member_as_list();
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL Confederation::mutable_member_as_list()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:apipb.Confederation.member_as_list)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_member_as_list();
}
inline const ::google::protobuf::RepeatedField<::uint32_t>&
Confederation::_internal_member_as_list() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.member_as_list_;
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL
Confederation::_internal_mutable_member_as_list() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.member_as_list_;
}

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

// RPKIConf

// string address = 1;
inline void RPKIConf::clear_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& RPKIConf::address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RPKIConf.address)
  return _internal_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void RPKIConf::set_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:apipb.RPKIConf.address)
}
inline ::std::string* PROTOBUF_NONNULL RPKIConf::mutable_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_address();
  // @@protoc_insertion_point(field_mutable:apipb.RPKIConf.address)
  return _s;
}
inline const ::std::string& RPKIConf::_internal_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.address_.Get();
}
inline void RPKIConf::_internal_set_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL RPKIConf::_internal_mutable_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE RPKIConf::release_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RPKIConf.address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.address_.Set("", GetArena());
  }
  return released;
}
inline void RPKIConf::set_allocated_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.address_.IsDefault()) {
    _impl_.address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:apipb.RPKIConf.address)
}

// uint32 remote_port = 2;
inline void RPKIConf::clear_remote_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t RPKIConf::remote_port() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIConf.remote_port)
  return _internal_remote_port();
}
inline void RPKIConf::set_remote_port(::uint32_t value) {
  _internal_set_remote_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:apipb.RPKIConf.remote_port)
}
inline ::uint32_t RPKIConf::_internal_remote_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_port_;
}
inline void RPKIConf::_internal_set_remote_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_port_ = value;
}

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

// RPKIState

// .google.protobuf.Timestamp uptime = 1;
inline bool RPKIState::has_uptime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.uptime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& RPKIState::_internal_uptime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.uptime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& RPKIState::uptime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.uptime)
  return _internal_uptime();
}
inline void RPKIState::unsafe_arena_set_allocated_uptime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }
  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RPKIState.uptime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE RPKIState::release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* released = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE RPKIState::unsafe_arena_release_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RPKIState.uptime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* temp = _impl_.uptime_;
  _impl_.uptime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL RPKIState::_internal_mutable_uptime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.uptime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.uptime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL RPKIState::mutable_uptime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_uptime();
  // @@protoc_insertion_point(field_mutable:apipb.RPKIState.uptime)
  return _msg;
}
inline void RPKIState::set_allocated_uptime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uptime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.uptime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RPKIState.uptime)
}

// .google.protobuf.Timestamp downtime = 2;
inline bool RPKIState::has_downtime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.downtime_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& RPKIState::_internal_downtime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.downtime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& RPKIState::downtime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.downtime)
  return _internal_downtime();
}
inline void RPKIState::unsafe_arena_set_allocated_downtime(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }
  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.RPKIState.downtime)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE RPKIState::release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* released = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE RPKIState::unsafe_arena_release_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.RPKIState.downtime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* temp = _impl_.downtime_;
  _impl_.downtime_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL RPKIState::_internal_mutable_downtime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.downtime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.downtime_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL RPKIState::mutable_downtime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_downtime();
  // @@protoc_insertion_point(field_mutable:apipb.RPKIState.downtime)
  return _msg;
}
inline void RPKIState::set_allocated_downtime(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.downtime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.downtime_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.RPKIState.downtime)
}

// bool up = 3;
inline void RPKIState::clear_up() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.up_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool RPKIState::up() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.up)
  return _internal_up();
}
inline void RPKIState::set_up(bool value) {
  _internal_set_up(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.up)
}
inline bool RPKIState::_internal_up() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.up_;
}
inline void RPKIState::_internal_set_up(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.up_ = value;
}

// uint32 record_ipv4 = 4;
inline void RPKIState::clear_record_ipv4() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_ipv4_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t RPKIState::record_ipv4() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.record_ipv4)
  return _internal_record_ipv4();
}
inline void RPKIState::set_record_ipv4(::uint32_t value) {
  _internal_set_record_ipv4(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.record_ipv4)
}
inline ::uint32_t RPKIState::_internal_record_ipv4() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.record_ipv4_;
}
inline void RPKIState::_internal_set_record_ipv4(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_ipv4_ = value;
}

// uint32 record_ipv6 = 5;
inline void RPKIState::clear_record_ipv6() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_ipv6_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t RPKIState::record_ipv6() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.record_ipv6)
  return _internal_record_ipv6();
}
inline void RPKIState::set_record_ipv6(::uint32_t value) {
  _internal_set_record_ipv6(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.record_ipv6)
}
inline ::uint32_t RPKIState::_internal_record_ipv6() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.record_ipv6_;
}
inline void RPKIState::_internal_set_record_ipv6(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_ipv6_ = value;
}

// uint32 prefix_ipv4 = 6;
inline void RPKIState::clear_prefix_ipv4() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_ipv4_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t RPKIState::prefix_ipv4() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.prefix_ipv4)
  return _internal_prefix_ipv4();
}
inline void RPKIState::set_prefix_ipv4(::uint32_t value) {
  _internal_set_prefix_ipv4(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.prefix_ipv4)
}
inline ::uint32_t RPKIState::_internal_prefix_ipv4() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_ipv4_;
}
inline void RPKIState::_internal_set_prefix_ipv4(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_ipv4_ = value;
}

// uint32 prefix_ipv6 = 7;
inline void RPKIState::clear_prefix_ipv6() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_ipv6_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t RPKIState::prefix_ipv6() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.prefix_ipv6)
  return _internal_prefix_ipv6();
}
inline void RPKIState::set_prefix_ipv6(::uint32_t value) {
  _internal_set_prefix_ipv6(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.prefix_ipv6)
}
inline ::uint32_t RPKIState::_internal_prefix_ipv6() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_ipv6_;
}
inline void RPKIState::_internal_set_prefix_ipv6(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_ipv6_ = value;
}

// uint32 serial = 8;
inline void RPKIState::clear_serial() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t RPKIState::serial() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.serial)
  return _internal_serial();
}
inline void RPKIState::set_serial(::uint32_t value) {
  _internal_set_serial(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.serial)
}
inline ::uint32_t RPKIState::_internal_serial() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.serial_;
}
inline void RPKIState::_internal_set_serial(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_ = value;
}

// int64 received_ipv4 = 9;
inline void RPKIState::clear_received_ipv4() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ipv4_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::int64_t RPKIState::received_ipv4() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.received_ipv4)
  return _internal_received_ipv4();
}
inline void RPKIState::set_received_ipv4(::int64_t value) {
  _internal_set_received_ipv4(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.received_ipv4)
}
inline ::int64_t RPKIState::_internal_received_ipv4() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_ipv4_;
}
inline void RPKIState::_internal_set_received_ipv4(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ipv4_ = value;
}

// int64 received_ipv6 = 10;
inline void RPKIState::clear_received_ipv6() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ipv6_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::int64_t RPKIState::received_ipv6() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.received_ipv6)
  return _internal_received_ipv6();
}
inline void RPKIState::set_received_ipv6(::int64_t value) {
  _internal_set_received_ipv6(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.received_ipv6)
}
inline ::int64_t RPKIState::_internal_received_ipv6() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_ipv6_;
}
inline void RPKIState::_internal_set_received_ipv6(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_ipv6_ = value;
}

// int64 serial_notify = 11;
inline void RPKIState::clear_serial_notify() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_notify_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::int64_t RPKIState::serial_notify() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.serial_notify)
  return _internal_serial_notify();
}
inline void RPKIState::set_serial_notify(::int64_t value) {
  _internal_set_serial_notify(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.serial_notify)
}
inline ::int64_t RPKIState::_internal_serial_notify() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.serial_notify_;
}
inline void RPKIState::_internal_set_serial_notify(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_notify_ = value;
}

// int64 cache_reset = 12;
inline void RPKIState::clear_cache_reset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.cache_reset_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::int64_t RPKIState::cache_reset() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.cache_reset)
  return _internal_cache_reset();
}
inline void RPKIState::set_cache_reset(::int64_t value) {
  _internal_set_cache_reset(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.cache_reset)
}
inline ::int64_t RPKIState::_internal_cache_reset() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.cache_reset_;
}
inline void RPKIState::_internal_set_cache_reset(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.cache_reset_ = value;
}

// int64 cache_response = 13;
inline void RPKIState::clear_cache_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.cache_response_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::int64_t RPKIState::cache_response() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.cache_response)
  return _internal_cache_response();
}
inline void RPKIState::set_cache_response(::int64_t value) {
  _internal_set_cache_response(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.cache_response)
}
inline ::int64_t RPKIState::_internal_cache_response() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.cache_response_;
}
inline void RPKIState::_internal_set_cache_response(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.cache_response_ = value;
}

// int64 end_of_data = 14;
inline void RPKIState::clear_end_of_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_data_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline ::int64_t RPKIState::end_of_data() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.end_of_data)
  return _internal_end_of_data();
}
inline void RPKIState::set_end_of_data(::int64_t value) {
  _internal_set_end_of_data(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.end_of_data)
}
inline ::int64_t RPKIState::_internal_end_of_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.end_of_data_;
}
inline void RPKIState::_internal_set_end_of_data(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.end_of_data_ = value;
}

// int64 error = 15;
inline void RPKIState::clear_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.error_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::int64_t RPKIState::error() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.error)
  return _internal_error();
}
inline void RPKIState::set_error(::int64_t value) {
  _internal_set_error(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.error)
}
inline ::int64_t RPKIState::_internal_error() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.error_;
}
inline void RPKIState::_internal_set_error(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.error_ = value;
}

// int64 serial_query = 16;
inline void RPKIState::clear_serial_query() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_query_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline ::int64_t RPKIState::serial_query() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.serial_query)
  return _internal_serial_query();
}
inline void RPKIState::set_serial_query(::int64_t value) {
  _internal_set_serial_query(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.serial_query)
}
inline ::int64_t RPKIState::_internal_serial_query() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.serial_query_;
}
inline void RPKIState::_internal_set_serial_query(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.serial_query_ = value;
}

// int64 reset_query = 17;
inline void RPKIState::clear_reset_query() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reset_query_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline ::int64_t RPKIState::reset_query() const {
  // @@protoc_insertion_point(field_get:apipb.RPKIState.reset_query)
  return _internal_reset_query();
}
inline void RPKIState::set_reset_query(::int64_t value) {
  _internal_set_reset_query(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:apipb.RPKIState.reset_query)
}
inline ::int64_t RPKIState::_internal_reset_query() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.reset_query_;
}
inline void RPKIState::_internal_set_reset_query(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reset_query_ = value;
}

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

// Rpki

// .apipb.RPKIConf conf = 1;
inline bool Rpki::has_conf() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.conf_ != nullptr);
  return value;
}
inline void Rpki::clear_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ != nullptr) _impl_.conf_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::apipb::RPKIConf& Rpki::_internal_conf() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RPKIConf* p = _impl_.conf_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RPKIConf>(&::apipb::RPKIConf_globals_);
}
inline const ::apipb::RPKIConf& Rpki::conf() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Rpki.conf)
  return _internal_conf();
}
inline void Rpki::unsafe_arena_set_allocated_conf(
    ::apipb::RPKIConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }
  _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Rpki.conf)
}
inline ::apipb::RPKIConf* PROTOBUF_NULLABLE Rpki::release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RPKIConf* released = _impl_.conf_;
  _impl_.conf_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RPKIConf* PROTOBUF_NULLABLE Rpki::unsafe_arena_release_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Rpki.conf)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RPKIConf* temp = _impl_.conf_;
  _impl_.conf_ = nullptr;
  return temp;
}
inline ::apipb::RPKIConf* PROTOBUF_NONNULL Rpki::_internal_mutable_conf() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.conf_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RPKIConf>(GetArena());
    _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(p);
  }
  return _impl_.conf_;
}
inline ::apipb::RPKIConf* PROTOBUF_NONNULL Rpki::mutable_conf()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::apipb::RPKIConf* _msg = _internal_mutable_conf();
  // @@protoc_insertion_point(field_mutable:apipb.Rpki.conf)
  return _msg;
}
inline void Rpki::set_allocated_conf(::apipb::RPKIConf* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.conf_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.conf_ = reinterpret_cast<::apipb::RPKIConf*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Rpki.conf)
}

// .apipb.RPKIState state = 2;
inline bool Rpki::has_state() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.state_ != nullptr);
  return value;
}
inline void Rpki::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ != nullptr) _impl_.state_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::apipb::RPKIState& Rpki::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::apipb::RPKIState* p = _impl_.state_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::apipb::RPKIState>(&::apipb::RPKIState_globals_);
}
inline const ::apipb::RPKIState& Rpki::state() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:apipb.Rpki.state)
  return _internal_state();
}
inline void Rpki::unsafe_arena_set_allocated_state(
    ::apipb::RPKIState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }
  _impl_.state_ = reinterpret_cast<::apipb::RPKIState*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:apipb.Rpki.state)
}
inline ::apipb::RPKIState* PROTOBUF_NULLABLE Rpki::release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIState* released = _impl_.state_;
  _impl_.state_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::apipb::RPKIState* PROTOBUF_NULLABLE Rpki::unsafe_arena_release_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:apipb.Rpki.state)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIState* temp = _impl_.state_;
  _impl_.state_ = nullptr;
  return temp;
}
inline ::apipb::RPKIState* PROTOBUF_NONNULL Rpki::_internal_mutable_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.state_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::apipb::RPKIState>(GetArena());
    _impl_.state_ = reinterpret_cast<::apipb::RPKIState*>(p);
  }
  return _impl_.state_;
}
inline ::apipb::RPKIState* PROTOBUF_NONNULL Rpki::mutable_state()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::apipb::RPKIState* _msg = _internal_mutable_state();
  // @@protoc_insertion_point(field_mutable:apipb.Rpki.state)
  return _msg;
}
inline void Rpki::set_allocated_state(::apipb::RPKIState* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.state_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.state_ = reinterpret_cast<::apipb::RPKIState*>(value);
  // @@protoc_insertion_point(field_set_allocated:apipb.Rpki.state)
}

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

// SetLogLevelRequest

// .apipb.SetLogLevelRequest.Level level = 1;
inline void SetLogLevelRequest::clear_level() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.level_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::apipb::SetLogLevelRequest_Level SetLogLevelRequest::level() const {
  // @@protoc_insertion_point(field_get:apipb.SetLogLevelRequest.level)
  return _internal_level();
}
inline void SetLogLevelRequest::set_level(::apipb::SetLogLevelRequest_Level value) {
  _internal_set_level(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:apipb.SetLogLevelRequest.level)
}
inline ::apipb::SetLogLevelRequest_Level SetLogLevelRequest::_internal_level() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::apipb::SetLogLevelRequest_Level>(_impl_.level_);
}
inline void SetLogLevelRequest::_internal_set_level(::apipb::SetLogLevelRequest_Level value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.level_ = value;
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace apipb


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::apipb::WatchEventRequest_Table_Filter_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::WatchEventRequest_Table_Filter_Type>() {
  return ::apipb::WatchEventRequest_Table_Filter_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::WatchEventResponse_PeerEvent_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::WatchEventResponse_PeerEvent_Type>() {
  return ::apipb::WatchEventResponse_PeerEvent_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::ResetPeerRequest_SoftResetDirection> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::ResetPeerRequest_SoftResetDirection>() {
  return ::apipb::ResetPeerRequest_SoftResetDirection_descriptor();
}
template <>
struct is_proto_enum<::apipb::TableLookupPrefix_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::TableLookupPrefix_Type>() {
  return ::apipb::TableLookupPrefix_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::ListPathRequest_SortType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::ListPathRequest_SortType>() {
  return ::apipb::ListPathRequest_SortType_descriptor();
}
template <>
struct is_proto_enum<::apipb::EnableMrtRequest_DumpType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::EnableMrtRequest_DumpType>() {
  return ::apipb::EnableMrtRequest_DumpType_descriptor();
}
template <>
struct is_proto_enum<::apipb::AddBmpRequest_MonitoringPolicy> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::AddBmpRequest_MonitoringPolicy>() {
  return ::apipb::AddBmpRequest_MonitoringPolicy_descriptor();
}
template <>
struct is_proto_enum<::apipb::Family_Afi> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::Family_Afi>() {
  return ::apipb::Family_Afi_descriptor();
}
template <>
struct is_proto_enum<::apipb::Family_Safi> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::Family_Safi>() {
  return ::apipb::Family_Safi_descriptor();
}
template <>
struct is_proto_enum<::apipb::Validation_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::Validation_State>() {
  return ::apipb::Validation_State_descriptor();
}
template <>
struct is_proto_enum<::apipb::Validation_Reason> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::Validation_Reason>() {
  return ::apipb::Validation_Reason_descriptor();
}
template <>
struct is_proto_enum<::apipb::PeerState_SessionState> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::PeerState_SessionState>() {
  return ::apipb::PeerState_SessionState_descriptor();
}
template <>
struct is_proto_enum<::apipb::PeerState_AdminState> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::PeerState_AdminState>() {
  return ::apipb::PeerState_AdminState_descriptor();
}
template <>
struct is_proto_enum<::apipb::MatchSet_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::MatchSet_Type>() {
  return ::apipb::MatchSet_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::AsPathLength_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::AsPathLength_Type>() {
  return ::apipb::AsPathLength_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::Conditions_RouteType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::Conditions_RouteType>() {
  return ::apipb::Conditions_RouteType_descriptor();
}
template <>
struct is_proto_enum<::apipb::CommunityAction_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::CommunityAction_Type>() {
  return ::apipb::CommunityAction_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::MedAction_Type> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::MedAction_Type>() {
  return ::apipb::MedAction_Type_descriptor();
}
template <>
struct is_proto_enum<::apipb::SetLogLevelRequest_Level> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::SetLogLevelRequest_Level>() {
  return ::apipb::SetLogLevelRequest_Level_descriptor();
}
template <>
struct is_proto_enum<::apipb::TableType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::TableType>() {
  return ::apipb::TableType_descriptor();
}
template <>
struct is_proto_enum<::apipb::PeerType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::PeerType>() {
  return ::apipb::PeerType_descriptor();
}
template <>
struct is_proto_enum<::apipb::RemovePrivate> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::RemovePrivate>() {
  return ::apipb::RemovePrivate_descriptor();
}
template <>
struct is_proto_enum<::apipb::DefinedType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::DefinedType>() {
  return ::apipb::DefinedType_descriptor();
}
template <>
struct is_proto_enum<::apipb::RouteAction> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::RouteAction>() {
  return ::apipb::RouteAction_descriptor();
}
template <>
struct is_proto_enum<::apipb::PolicyDirection> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::apipb::PolicyDirection>() {
  return ::apipb::PolicyDirection_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // gobgp_2eproto_2epb_2eh
