// Generated by the gRPC C++ plugin.
// If you make any local change, they will be lost.
// source: gobgp.proto
// Original file comments:
// Copyright (C) 2015-2017 Nippon Telegraph and Telephone Corporation.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#ifndef GRPC_gobgp_2eproto__INCLUDED
#define GRPC_gobgp_2eproto__INCLUDED

#include "gobgp.pb.h"

#include <functional>
#include <grpcpp/generic/async_generic_service.h>
#include <grpcpp/support/async_stream.h>
#include <grpcpp/support/async_unary_call.h>
#include <grpcpp/support/client_callback.h>
#include <grpcpp/client_context.h>
#include <grpcpp/completion_queue.h>
#include <grpcpp/support/message_allocator.h>
#include <grpcpp/support/method_handler.h>
#include <grpcpp/impl/proto_utils.h>
#include <grpcpp/impl/rpc_method.h>
#include <grpcpp/support/server_callback.h>
#include <grpcpp/impl/server_callback_handlers.h>
#include <grpcpp/server_context.h>
#include <grpcpp/impl/service_type.h>
#include <grpcpp/support/status.h>
#include <grpcpp/support/stub_options.h>
#include <grpcpp/support/sync_stream.h>
#include <grpcpp/ports_def.inc>

namespace apipb {

// Interface exported by the server.
//
class GobgpApi final {
 public:
  static constexpr char const* service_full_name() {
    return "apipb.GobgpApi";
  }
  class StubInterface {
   public:
    virtual ~StubInterface() {}
    virtual ::grpc::Status StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncStartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncStartBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncStartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncStartBgpRaw(context, request, cq));
    }
    virtual ::grpc::Status StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncStopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncStopBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncStopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncStopBgpRaw(context, request, cq));
    }
    virtual ::grpc::Status GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::apipb::GetBgpResponse* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>> AsyncGetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>>(AsyncGetBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>> PrepareAsyncGetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>>(PrepareAsyncGetBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::WatchEventResponse>> WatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::WatchEventResponse>>(WatchEventRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>> AsyncWatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>>(AsyncWatchEventRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>> PrepareAsyncWatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>>(PrepareAsyncWatchEventRaw(context, request, cq));
    }
    virtual ::grpc::Status AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddPeerRaw(context, request, cq));
    }
    virtual ::grpc::Status DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeletePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeletePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPeerResponse>> ListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPeerResponse>>(ListPeerRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>> AsyncListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>>(AsyncListPeerRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>> PrepareAsyncListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>>(PrepareAsyncListPeerRaw(context, request, cq));
    }
    virtual ::grpc::Status UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::apipb::UpdatePeerResponse* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>> AsyncUpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>>(AsyncUpdatePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>> PrepareAsyncUpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>>(PrepareAsyncUpdatePeerRaw(context, request, cq));
    }
    virtual ::grpc::Status ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncResetPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncResetPeerRaw(context, request, cq));
    }
    virtual ::grpc::Status ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncShutdownPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncShutdownPeerRaw(context, request, cq));
    }
    virtual ::grpc::Status EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncEnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncEnablePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncEnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncEnablePeerRaw(context, request, cq));
    }
    virtual ::grpc::Status DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDisablePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDisablePeerRaw(context, request, cq));
    }
    virtual ::grpc::Status AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddPeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddPeerGroupRaw(context, request, cq));
    }
    virtual ::grpc::Status DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeletePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeletePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPeerGroupResponse>> ListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPeerGroupResponse>>(ListPeerGroupRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>> AsyncListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>>(AsyncListPeerGroupRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>> PrepareAsyncListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>>(PrepareAsyncListPeerGroupRaw(context, request, cq));
    }
    virtual ::grpc::Status UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::apipb::UpdatePeerGroupResponse* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>> AsyncUpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>>(AsyncUpdatePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>> PrepareAsyncUpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>>(PrepareAsyncUpdatePeerGroupRaw(context, request, cq));
    }
    virtual ::grpc::Status AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListDynamicNeighborResponse>> ListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListDynamicNeighborResponse>>(ListDynamicNeighborRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>> AsyncListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>>(AsyncListDynamicNeighborRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>> PrepareAsyncListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>>(PrepareAsyncListDynamicNeighborRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteDynamicNeighborRaw(context, request, cq));
    }
    virtual ::grpc::Status AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::apipb::AddPathResponse* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>> AsyncAddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>>(AsyncAddPathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>> PrepareAsyncAddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>>(PrepareAsyncAddPathRaw(context, request, cq));
    }
    virtual ::grpc::Status DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeletePathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeletePathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPathResponse>> ListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPathResponse>>(ListPathRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>> AsyncListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>>(AsyncListPathRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>> PrepareAsyncListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>>(PrepareAsyncListPathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientWriterInterface< ::apipb::AddPathStreamRequest>> AddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response) {
      return std::unique_ptr< ::grpc::ClientWriterInterface< ::apipb::AddPathStreamRequest>>(AddPathStreamRaw(context, response));
    }
    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>> AsyncAddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>>(AsyncAddPathStreamRaw(context, response, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>> PrepareAsyncAddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>>(PrepareAsyncAddPathStreamRaw(context, response, cq));
    }
    virtual ::grpc::Status GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::apipb::GetTableResponse* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>> AsyncGetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>>(AsyncGetTableRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>> PrepareAsyncGetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>>(PrepareAsyncGetTableRaw(context, request, cq));
    }
    virtual ::grpc::Status AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddVrfRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListVrfResponse>> ListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListVrfResponse>>(ListVrfRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>> AsyncListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>>(AsyncListVrfRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>> PrepareAsyncListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>>(PrepareAsyncListVrfRaw(context, request, cq));
    }
    virtual ::grpc::Status AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddPolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddPolicyRaw(context, request, cq));
    }
    virtual ::grpc::Status DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeletePolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeletePolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPolicyResponse>> ListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPolicyResponse>>(ListPolicyRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>> AsyncListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>>(AsyncListPolicyRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>> PrepareAsyncListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>>(PrepareAsyncListPolicyRaw(context, request, cq));
    }
    virtual ::grpc::Status SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncSetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncSetPoliciesRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncSetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncSetPoliciesRaw(context, request, cq));
    }
    virtual ::grpc::Status AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddDefinedSetRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListDefinedSetResponse>> ListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListDefinedSetResponse>>(ListDefinedSetRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>> AsyncListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>>(AsyncListDefinedSetRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>> PrepareAsyncListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>>(PrepareAsyncListDefinedSetRaw(context, request, cq));
    }
    virtual ::grpc::Status AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddStatementRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListStatementResponse>> ListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListStatementResponse>>(ListStatementRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>> AsyncListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>>(AsyncListStatementRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>> PrepareAsyncListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>>(PrepareAsyncListStatementRaw(context, request, cq));
    }
    virtual ::grpc::Status AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddPolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddPolicyAssignmentRaw(context, request, cq));
    }
    virtual ::grpc::Status DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeletePolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeletePolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPolicyAssignmentResponse>> ListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListPolicyAssignmentResponse>>(ListPolicyAssignmentRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>> AsyncListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>>(AsyncListPolicyAssignmentRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>> PrepareAsyncListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>>(PrepareAsyncListPolicyAssignmentRaw(context, request, cq));
    }
    virtual ::grpc::Status SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncSetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncSetPolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncSetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncSetPolicyAssignmentRaw(context, request, cq));
    }
    virtual ::grpc::Status AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddRpkiRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListRpkiResponse>> ListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListRpkiResponse>>(ListRpkiRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>> AsyncListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>>(AsyncListRpkiRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>> PrepareAsyncListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>>(PrepareAsyncListRpkiRaw(context, request, cq));
    }
    virtual ::grpc::Status EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncEnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncEnableRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncEnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncEnableRpkiRaw(context, request, cq));
    }
    virtual ::grpc::Status DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDisableRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDisableRpkiRaw(context, request, cq));
    }
    virtual ::grpc::Status ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncResetRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncResetRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListRpkiTableResponse>> ListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListRpkiTableResponse>>(ListRpkiTableRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>> AsyncListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>>(AsyncListRpkiTableRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>> PrepareAsyncListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>>(PrepareAsyncListRpkiTableRaw(context, request, cq));
    }
    virtual ::grpc::Status EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncEnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncEnableZebraRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncEnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncEnableZebraRaw(context, request, cq));
    }
    virtual ::grpc::Status EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncEnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncEnableMrtRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncEnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncEnableMrtRaw(context, request, cq));
    }
    virtual ::grpc::Status DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDisableMrtRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDisableMrtRaw(context, request, cq));
    }
    virtual ::grpc::Status AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncAddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncAddBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncAddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncAddBmpRaw(context, request, cq));
    }
    virtual ::grpc::Status DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncDeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncDeleteBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncDeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncDeleteBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListBmpResponse>> ListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request) {
      return std::unique_ptr< ::grpc::ClientReaderInterface< ::apipb::ListBmpResponse>>(ListBmpRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>> AsyncListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>>(AsyncListBmpRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>> PrepareAsyncListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>>(PrepareAsyncListBmpRaw(context, request, cq));
    }
    virtual ::grpc::Status SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::google::protobuf::Empty* response) = 0;
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncSetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncSetLogLevelRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncSetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncSetLogLevelRaw(context, request, cq));
    }
    class async_interface {
     public:
      virtual ~async_interface() {}
      virtual void StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response, std::function<void(::grpc::Status)>) = 0;
      virtual void GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void WatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest* request, ::grpc::ClientReadReactor< ::apipb::WatchEventResponse>* reactor) = 0;
      virtual void AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPeerResponse>* reactor) = 0;
      virtual void UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response, std::function<void(::grpc::Status)>) = 0;
      virtual void UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPeerGroupResponse>* reactor) = 0;
      virtual void UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response, std::function<void(::grpc::Status)>) = 0;
      virtual void UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest* request, ::grpc::ClientReadReactor< ::apipb::ListDynamicNeighborResponse>* reactor) = 0;
      virtual void DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPathResponse>* reactor) = 0;
      virtual void AddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::ClientWriteReactor< ::apipb::AddPathStreamRequest>* reactor) = 0;
      virtual void GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response, std::function<void(::grpc::Status)>) = 0;
      virtual void GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest* request, ::grpc::ClientReadReactor< ::apipb::ListVrfResponse>* reactor) = 0;
      virtual void AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPolicyResponse>* reactor) = 0;
      virtual void SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest* request, ::grpc::ClientReadReactor< ::apipb::ListDefinedSetResponse>* reactor) = 0;
      virtual void AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest* request, ::grpc::ClientReadReactor< ::apipb::ListStatementResponse>* reactor) = 0;
      virtual void AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPolicyAssignmentResponse>* reactor) = 0;
      virtual void SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest* request, ::grpc::ClientReadReactor< ::apipb::ListRpkiResponse>* reactor) = 0;
      virtual void EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest* request, ::grpc::ClientReadReactor< ::apipb::ListRpkiTableResponse>* reactor) = 0;
      virtual void EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
      virtual void ListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest* request, ::grpc::ClientReadReactor< ::apipb::ListBmpResponse>* reactor) = 0;
      virtual void SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) = 0;
      virtual void SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
    };
    typedef class async_interface experimental_async_interface;
    virtual class async_interface* async() { return nullptr; }
    class async_interface* experimental_async() { return async(); }
   private:
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncStartBgpRaw(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncStartBgpRaw(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncStopBgpRaw(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncStopBgpRaw(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>* AsyncGetBgpRaw(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetBgpResponse>* PrepareAsyncGetBgpRaw(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::WatchEventResponse>* WatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>* AsyncWatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::WatchEventResponse>* PrepareAsyncWatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddPeerRaw(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddPeerRaw(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeletePeerRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeletePeerRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListPeerResponse>* ListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>* AsyncListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerResponse>* PrepareAsyncListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>* AsyncUpdatePeerRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerResponse>* PrepareAsyncUpdatePeerRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncResetPeerRaw(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncResetPeerRaw(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncShutdownPeerRaw(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncShutdownPeerRaw(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncEnablePeerRaw(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncEnablePeerRaw(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDisablePeerRaw(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDisablePeerRaw(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeletePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeletePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListPeerGroupResponse>* ListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>* AsyncListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPeerGroupResponse>* PrepareAsyncListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>* AsyncUpdatePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::UpdatePeerGroupResponse>* PrepareAsyncUpdatePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListDynamicNeighborResponse>* ListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>* AsyncListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListDynamicNeighborResponse>* PrepareAsyncListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>* AsyncAddPathRaw(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::AddPathResponse>* PrepareAsyncAddPathRaw(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeletePathRaw(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeletePathRaw(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListPathResponse>* ListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>* AsyncListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPathResponse>* PrepareAsyncListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientWriterInterface< ::apipb::AddPathStreamRequest>* AddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response) = 0;
    virtual ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>* AsyncAddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncWriterInterface< ::apipb::AddPathStreamRequest>* PrepareAsyncAddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>* AsyncGetTableRaw(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apipb::GetTableResponse>* PrepareAsyncGetTableRaw(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddVrfRaw(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddVrfRaw(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteVrfRaw(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteVrfRaw(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListVrfResponse>* ListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>* AsyncListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListVrfResponse>* PrepareAsyncListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddPolicyRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddPolicyRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeletePolicyRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeletePolicyRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListPolicyResponse>* ListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>* AsyncListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyResponse>* PrepareAsyncListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncSetPoliciesRaw(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncSetPoliciesRaw(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListDefinedSetResponse>* ListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>* AsyncListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListDefinedSetResponse>* PrepareAsyncListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddStatementRaw(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddStatementRaw(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteStatementRaw(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteStatementRaw(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListStatementResponse>* ListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>* AsyncListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListStatementResponse>* PrepareAsyncListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeletePolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeletePolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListPolicyAssignmentResponse>* ListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>* AsyncListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListPolicyAssignmentResponse>* PrepareAsyncListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncSetPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncSetPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddRpkiRaw(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddRpkiRaw(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteRpkiRaw(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteRpkiRaw(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListRpkiResponse>* ListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>* AsyncListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiResponse>* PrepareAsyncListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncEnableRpkiRaw(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncEnableRpkiRaw(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDisableRpkiRaw(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDisableRpkiRaw(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncResetRpkiRaw(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncResetRpkiRaw(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListRpkiTableResponse>* ListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>* AsyncListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListRpkiTableResponse>* PrepareAsyncListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncEnableZebraRaw(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncEnableZebraRaw(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncEnableMrtRaw(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncEnableMrtRaw(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDisableMrtRaw(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDisableMrtRaw(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncAddBmpRaw(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncAddBmpRaw(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncDeleteBmpRaw(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncDeleteBmpRaw(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientReaderInterface< ::apipb::ListBmpResponse>* ListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>* AsyncListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
    virtual ::grpc::ClientAsyncReaderInterface< ::apipb::ListBmpResponse>* PrepareAsyncListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncSetLogLevelRaw(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) = 0;
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncSetLogLevelRaw(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) = 0;
  };
  class Stub final : public StubInterface {
   public:
    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
    ::grpc::Status StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncStartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncStartBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncStartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncStartBgpRaw(context, request, cq));
    }
    ::grpc::Status StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncStopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncStopBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncStopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncStopBgpRaw(context, request, cq));
    }
    ::grpc::Status GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::apipb::GetBgpResponse* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>> AsyncGetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>>(AsyncGetBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>> PrepareAsyncGetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>>(PrepareAsyncGetBgpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::WatchEventResponse>> WatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::WatchEventResponse>>(WatchEventRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>> AsyncWatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>>(AsyncWatchEventRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>> PrepareAsyncWatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>>(PrepareAsyncWatchEventRaw(context, request, cq));
    }
    ::grpc::Status AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddPeerRaw(context, request, cq));
    }
    ::grpc::Status DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeletePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeletePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPeerResponse>> ListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPeerResponse>>(ListPeerRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>> AsyncListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>>(AsyncListPeerRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>> PrepareAsyncListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>>(PrepareAsyncListPeerRaw(context, request, cq));
    }
    ::grpc::Status UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::apipb::UpdatePeerResponse* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>> AsyncUpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>>(AsyncUpdatePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>> PrepareAsyncUpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>>(PrepareAsyncUpdatePeerRaw(context, request, cq));
    }
    ::grpc::Status ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncResetPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncResetPeerRaw(context, request, cq));
    }
    ::grpc::Status ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncShutdownPeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncShutdownPeerRaw(context, request, cq));
    }
    ::grpc::Status EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncEnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncEnablePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncEnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncEnablePeerRaw(context, request, cq));
    }
    ::grpc::Status DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDisablePeerRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDisablePeerRaw(context, request, cq));
    }
    ::grpc::Status AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddPeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddPeerGroupRaw(context, request, cq));
    }
    ::grpc::Status DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeletePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeletePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPeerGroupResponse>> ListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPeerGroupResponse>>(ListPeerGroupRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>> AsyncListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>>(AsyncListPeerGroupRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>> PrepareAsyncListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>>(PrepareAsyncListPeerGroupRaw(context, request, cq));
    }
    ::grpc::Status UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::apipb::UpdatePeerGroupResponse* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>> AsyncUpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>>(AsyncUpdatePeerGroupRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>> PrepareAsyncUpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>>(PrepareAsyncUpdatePeerGroupRaw(context, request, cq));
    }
    ::grpc::Status AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListDynamicNeighborResponse>> ListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListDynamicNeighborResponse>>(ListDynamicNeighborRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>> AsyncListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>>(AsyncListDynamicNeighborRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>> PrepareAsyncListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>>(PrepareAsyncListDynamicNeighborRaw(context, request, cq));
    }
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteDynamicNeighborRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteDynamicNeighborRaw(context, request, cq));
    }
    ::grpc::Status AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::apipb::AddPathResponse* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>> AsyncAddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>>(AsyncAddPathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>> PrepareAsyncAddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>>(PrepareAsyncAddPathRaw(context, request, cq));
    }
    ::grpc::Status DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeletePathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeletePathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPathResponse>> ListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPathResponse>>(ListPathRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>> AsyncListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>>(AsyncListPathRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>> PrepareAsyncListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>>(PrepareAsyncListPathRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientWriter< ::apipb::AddPathStreamRequest>> AddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response) {
      return std::unique_ptr< ::grpc::ClientWriter< ::apipb::AddPathStreamRequest>>(AddPathStreamRaw(context, response));
    }
    std::unique_ptr< ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>> AsyncAddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>>(AsyncAddPathStreamRaw(context, response, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>> PrepareAsyncAddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>>(PrepareAsyncAddPathStreamRaw(context, response, cq));
    }
    ::grpc::Status GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::apipb::GetTableResponse* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>> AsyncGetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>>(AsyncGetTableRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>> PrepareAsyncGetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>>(PrepareAsyncGetTableRaw(context, request, cq));
    }
    ::grpc::Status AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddVrfRaw(context, request, cq));
    }
    ::grpc::Status DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteVrfRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListVrfResponse>> ListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListVrfResponse>>(ListVrfRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>> AsyncListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>>(AsyncListVrfRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>> PrepareAsyncListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>>(PrepareAsyncListVrfRaw(context, request, cq));
    }
    ::grpc::Status AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddPolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddPolicyRaw(context, request, cq));
    }
    ::grpc::Status DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeletePolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeletePolicyRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPolicyResponse>> ListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPolicyResponse>>(ListPolicyRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>> AsyncListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>>(AsyncListPolicyRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>> PrepareAsyncListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>>(PrepareAsyncListPolicyRaw(context, request, cq));
    }
    ::grpc::Status SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncSetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncSetPoliciesRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncSetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncSetPoliciesRaw(context, request, cq));
    }
    ::grpc::Status AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddDefinedSetRaw(context, request, cq));
    }
    ::grpc::Status DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteDefinedSetRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListDefinedSetResponse>> ListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListDefinedSetResponse>>(ListDefinedSetRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>> AsyncListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>>(AsyncListDefinedSetRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>> PrepareAsyncListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>>(PrepareAsyncListDefinedSetRaw(context, request, cq));
    }
    ::grpc::Status AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddStatementRaw(context, request, cq));
    }
    ::grpc::Status DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteStatementRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListStatementResponse>> ListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListStatementResponse>>(ListStatementRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>> AsyncListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>>(AsyncListStatementRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>> PrepareAsyncListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>>(PrepareAsyncListStatementRaw(context, request, cq));
    }
    ::grpc::Status AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddPolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddPolicyAssignmentRaw(context, request, cq));
    }
    ::grpc::Status DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeletePolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeletePolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPolicyAssignmentResponse>> ListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListPolicyAssignmentResponse>>(ListPolicyAssignmentRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>> AsyncListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>>(AsyncListPolicyAssignmentRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>> PrepareAsyncListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>>(PrepareAsyncListPolicyAssignmentRaw(context, request, cq));
    }
    ::grpc::Status SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncSetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncSetPolicyAssignmentRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncSetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncSetPolicyAssignmentRaw(context, request, cq));
    }
    ::grpc::Status AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddRpkiRaw(context, request, cq));
    }
    ::grpc::Status DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListRpkiResponse>> ListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListRpkiResponse>>(ListRpkiRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>> AsyncListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>>(AsyncListRpkiRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>> PrepareAsyncListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>>(PrepareAsyncListRpkiRaw(context, request, cq));
    }
    ::grpc::Status EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncEnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncEnableRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncEnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncEnableRpkiRaw(context, request, cq));
    }
    ::grpc::Status DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDisableRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDisableRpkiRaw(context, request, cq));
    }
    ::grpc::Status ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncResetRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncResetRpkiRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListRpkiTableResponse>> ListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListRpkiTableResponse>>(ListRpkiTableRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>> AsyncListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>>(AsyncListRpkiTableRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>> PrepareAsyncListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>>(PrepareAsyncListRpkiTableRaw(context, request, cq));
    }
    ::grpc::Status EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncEnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncEnableZebraRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncEnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncEnableZebraRaw(context, request, cq));
    }
    ::grpc::Status EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncEnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncEnableMrtRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncEnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncEnableMrtRaw(context, request, cq));
    }
    ::grpc::Status DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDisableMrtRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDisableMrtRaw(context, request, cq));
    }
    ::grpc::Status AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncAddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncAddBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncAddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncAddBmpRaw(context, request, cq));
    }
    ::grpc::Status DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncDeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncDeleteBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncDeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncDeleteBmpRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientReader< ::apipb::ListBmpResponse>> ListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request) {
      return std::unique_ptr< ::grpc::ClientReader< ::apipb::ListBmpResponse>>(ListBmpRaw(context, request));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>> AsyncListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>>(AsyncListBmpRaw(context, request, cq, tag));
    }
    std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>> PrepareAsyncListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>>(PrepareAsyncListBmpRaw(context, request, cq));
    }
    ::grpc::Status SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::google::protobuf::Empty* response) override;
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncSetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncSetLogLevelRaw(context, request, cq));
    }
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncSetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncSetLogLevelRaw(context, request, cq));
    }
    class async final :
      public StubInterface::async_interface {
     public:
      void StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void StartBgp(::grpc::ClientContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void StopBgp(::grpc::ClientContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response, std::function<void(::grpc::Status)>) override;
      void GetBgp(::grpc::ClientContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      void WatchEvent(::grpc::ClientContext* context, const ::apipb::WatchEventRequest* request, ::grpc::ClientReadReactor< ::apipb::WatchEventResponse>* reactor) override;
      void AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddPeer(::grpc::ClientContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeletePeer(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListPeer(::grpc::ClientContext* context, const ::apipb::ListPeerRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPeerResponse>* reactor) override;
      void UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response, std::function<void(::grpc::Status)>) override;
      void UpdatePeer(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void ResetPeer(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void ShutdownPeer(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void EnablePeer(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DisablePeer(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddPeerGroup(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeletePeerGroup(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListPeerGroup(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPeerGroupResponse>* reactor) override;
      void UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response, std::function<void(::grpc::Status)>) override;
      void UpdatePeerGroup(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest* request, ::grpc::ClientReadReactor< ::apipb::ListDynamicNeighborResponse>* reactor) override;
      void DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteDynamicNeighbor(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response, std::function<void(::grpc::Status)>) override;
      void AddPath(::grpc::ClientContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeletePath(::grpc::ClientContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListPath(::grpc::ClientContext* context, const ::apipb::ListPathRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPathResponse>* reactor) override;
      void AddPathStream(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::ClientWriteReactor< ::apipb::AddPathStreamRequest>* reactor) override;
      void GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response, std::function<void(::grpc::Status)>) override;
      void GetTable(::grpc::ClientContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddVrf(::grpc::ClientContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteVrf(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListVrf(::grpc::ClientContext* context, const ::apipb::ListVrfRequest* request, ::grpc::ClientReadReactor< ::apipb::ListVrfResponse>* reactor) override;
      void AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddPolicy(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeletePolicy(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListPolicy(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPolicyResponse>* reactor) override;
      void SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void SetPolicies(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddDefinedSet(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteDefinedSet(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListDefinedSet(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest* request, ::grpc::ClientReadReactor< ::apipb::ListDefinedSetResponse>* reactor) override;
      void AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddStatement(::grpc::ClientContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteStatement(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListStatement(::grpc::ClientContext* context, const ::apipb::ListStatementRequest* request, ::grpc::ClientReadReactor< ::apipb::ListStatementResponse>* reactor) override;
      void AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddPolicyAssignment(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeletePolicyAssignment(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListPolicyAssignment(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest* request, ::grpc::ClientReadReactor< ::apipb::ListPolicyAssignmentResponse>* reactor) override;
      void SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void SetPolicyAssignment(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddRpki(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteRpki(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListRpki(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest* request, ::grpc::ClientReadReactor< ::apipb::ListRpkiResponse>* reactor) override;
      void EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void EnableRpki(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DisableRpki(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void ResetRpki(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListRpkiTable(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest* request, ::grpc::ClientReadReactor< ::apipb::ListRpkiTableResponse>* reactor) override;
      void EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void EnableZebra(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void EnableMrt(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DisableMrt(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void AddBmp(::grpc::ClientContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void DeleteBmp(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
      void ListBmp(::grpc::ClientContext* context, const ::apipb::ListBmpRequest* request, ::grpc::ClientReadReactor< ::apipb::ListBmpResponse>* reactor) override;
      void SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)>) override;
      void SetLogLevel(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
     private:
      friend class Stub;
      explicit async(Stub* stub): stub_(stub) { }
      Stub* stub() { return stub_; }
      Stub* stub_;
    };
    class async* async() override { return &async_stub_; }

   private:
    std::shared_ptr< ::grpc::ChannelInterface> channel_;
    class async async_stub_{this};
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncStartBgpRaw(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncStartBgpRaw(::grpc::ClientContext* context, const ::apipb::StartBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncStopBgpRaw(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncStopBgpRaw(::grpc::ClientContext* context, const ::apipb::StopBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>* AsyncGetBgpRaw(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::GetBgpResponse>* PrepareAsyncGetBgpRaw(::grpc::ClientContext* context, const ::apipb::GetBgpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::WatchEventResponse>* WatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>* AsyncWatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::WatchEventResponse>* PrepareAsyncWatchEventRaw(::grpc::ClientContext* context, const ::apipb::WatchEventRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddPeerRaw(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddPeerRaw(::grpc::ClientContext* context, const ::apipb::AddPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeletePeerRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeletePeerRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListPeerResponse>* ListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>* AsyncListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPeerResponse>* PrepareAsyncListPeerRaw(::grpc::ClientContext* context, const ::apipb::ListPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>* AsyncUpdatePeerRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerResponse>* PrepareAsyncUpdatePeerRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncResetPeerRaw(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncResetPeerRaw(::grpc::ClientContext* context, const ::apipb::ResetPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncShutdownPeerRaw(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncShutdownPeerRaw(::grpc::ClientContext* context, const ::apipb::ShutdownPeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncEnablePeerRaw(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncEnablePeerRaw(::grpc::ClientContext* context, const ::apipb::EnablePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDisablePeerRaw(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDisablePeerRaw(::grpc::ClientContext* context, const ::apipb::DisablePeerRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::AddPeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeletePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeletePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::DeletePeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListPeerGroupResponse>* ListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>* AsyncListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPeerGroupResponse>* PrepareAsyncListPeerGroupRaw(::grpc::ClientContext* context, const ::apipb::ListPeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>* AsyncUpdatePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::UpdatePeerGroupResponse>* PrepareAsyncUpdatePeerGroupRaw(::grpc::ClientContext* context, const ::apipb::UpdatePeerGroupRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::AddDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListDynamicNeighborResponse>* ListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>* AsyncListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListDynamicNeighborResponse>* PrepareAsyncListDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::ListDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteDynamicNeighborRaw(::grpc::ClientContext* context, const ::apipb::DeleteDynamicNeighborRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>* AsyncAddPathRaw(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::AddPathResponse>* PrepareAsyncAddPathRaw(::grpc::ClientContext* context, const ::apipb::AddPathRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeletePathRaw(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeletePathRaw(::grpc::ClientContext* context, const ::apipb::DeletePathRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListPathResponse>* ListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>* AsyncListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPathResponse>* PrepareAsyncListPathRaw(::grpc::ClientContext* context, const ::apipb::ListPathRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientWriter< ::apipb::AddPathStreamRequest>* AddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response) override;
    ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>* AsyncAddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncWriter< ::apipb::AddPathStreamRequest>* PrepareAsyncAddPathStreamRaw(::grpc::ClientContext* context, ::google::protobuf::Empty* response, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>* AsyncGetTableRaw(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::apipb::GetTableResponse>* PrepareAsyncGetTableRaw(::grpc::ClientContext* context, const ::apipb::GetTableRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddVrfRaw(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddVrfRaw(::grpc::ClientContext* context, const ::apipb::AddVrfRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteVrfRaw(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteVrfRaw(::grpc::ClientContext* context, const ::apipb::DeleteVrfRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListVrfResponse>* ListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>* AsyncListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListVrfResponse>* PrepareAsyncListVrfRaw(::grpc::ClientContext* context, const ::apipb::ListVrfRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddPolicyRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddPolicyRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeletePolicyRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeletePolicyRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListPolicyResponse>* ListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>* AsyncListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPolicyResponse>* PrepareAsyncListPolicyRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncSetPoliciesRaw(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncSetPoliciesRaw(::grpc::ClientContext* context, const ::apipb::SetPoliciesRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::AddDefinedSetRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::DeleteDefinedSetRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListDefinedSetResponse>* ListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>* AsyncListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListDefinedSetResponse>* PrepareAsyncListDefinedSetRaw(::grpc::ClientContext* context, const ::apipb::ListDefinedSetRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddStatementRaw(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddStatementRaw(::grpc::ClientContext* context, const ::apipb::AddStatementRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteStatementRaw(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteStatementRaw(::grpc::ClientContext* context, const ::apipb::DeleteStatementRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListStatementResponse>* ListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>* AsyncListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListStatementResponse>* PrepareAsyncListStatementRaw(::grpc::ClientContext* context, const ::apipb::ListStatementRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::AddPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeletePolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeletePolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::DeletePolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListPolicyAssignmentResponse>* ListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>* AsyncListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListPolicyAssignmentResponse>* PrepareAsyncListPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::ListPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncSetPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncSetPolicyAssignmentRaw(::grpc::ClientContext* context, const ::apipb::SetPolicyAssignmentRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddRpkiRaw(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddRpkiRaw(::grpc::ClientContext* context, const ::apipb::AddRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteRpkiRaw(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteRpkiRaw(::grpc::ClientContext* context, const ::apipb::DeleteRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListRpkiResponse>* ListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>* AsyncListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListRpkiResponse>* PrepareAsyncListRpkiRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncEnableRpkiRaw(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncEnableRpkiRaw(::grpc::ClientContext* context, const ::apipb::EnableRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDisableRpkiRaw(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDisableRpkiRaw(::grpc::ClientContext* context, const ::apipb::DisableRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncResetRpkiRaw(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncResetRpkiRaw(::grpc::ClientContext* context, const ::apipb::ResetRpkiRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListRpkiTableResponse>* ListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>* AsyncListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListRpkiTableResponse>* PrepareAsyncListRpkiTableRaw(::grpc::ClientContext* context, const ::apipb::ListRpkiTableRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncEnableZebraRaw(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncEnableZebraRaw(::grpc::ClientContext* context, const ::apipb::EnableZebraRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncEnableMrtRaw(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncEnableMrtRaw(::grpc::ClientContext* context, const ::apipb::EnableMrtRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDisableMrtRaw(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDisableMrtRaw(::grpc::ClientContext* context, const ::apipb::DisableMrtRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncAddBmpRaw(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncAddBmpRaw(::grpc::ClientContext* context, const ::apipb::AddBmpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncDeleteBmpRaw(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncDeleteBmpRaw(::grpc::ClientContext* context, const ::apipb::DeleteBmpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientReader< ::apipb::ListBmpResponse>* ListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request) override;
    ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>* AsyncListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
    ::grpc::ClientAsyncReader< ::apipb::ListBmpResponse>* PrepareAsyncListBmpRaw(::grpc::ClientContext* context, const ::apipb::ListBmpRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncSetLogLevelRaw(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) override;
    ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncSetLogLevelRaw(::grpc::ClientContext* context, const ::apipb::SetLogLevelRequest& request, ::grpc::CompletionQueue* cq) override;
    const ::grpc::internal::RpcMethod rpcmethod_StartBgp_;
    const ::grpc::internal::RpcMethod rpcmethod_StopBgp_;
    const ::grpc::internal::RpcMethod rpcmethod_GetBgp_;
    const ::grpc::internal::RpcMethod rpcmethod_WatchEvent_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPeer_;
    const ::grpc::internal::RpcMethod rpcmethod_DeletePeer_;
    const ::grpc::internal::RpcMethod rpcmethod_ListPeer_;
    const ::grpc::internal::RpcMethod rpcmethod_UpdatePeer_;
    const ::grpc::internal::RpcMethod rpcmethod_ResetPeer_;
    const ::grpc::internal::RpcMethod rpcmethod_ShutdownPeer_;
    const ::grpc::internal::RpcMethod rpcmethod_EnablePeer_;
    const ::grpc::internal::RpcMethod rpcmethod_DisablePeer_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPeerGroup_;
    const ::grpc::internal::RpcMethod rpcmethod_DeletePeerGroup_;
    const ::grpc::internal::RpcMethod rpcmethod_ListPeerGroup_;
    const ::grpc::internal::RpcMethod rpcmethod_UpdatePeerGroup_;
    const ::grpc::internal::RpcMethod rpcmethod_AddDynamicNeighbor_;
    const ::grpc::internal::RpcMethod rpcmethod_ListDynamicNeighbor_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteDynamicNeighbor_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPath_;
    const ::grpc::internal::RpcMethod rpcmethod_DeletePath_;
    const ::grpc::internal::RpcMethod rpcmethod_ListPath_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPathStream_;
    const ::grpc::internal::RpcMethod rpcmethod_GetTable_;
    const ::grpc::internal::RpcMethod rpcmethod_AddVrf_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteVrf_;
    const ::grpc::internal::RpcMethod rpcmethod_ListVrf_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPolicy_;
    const ::grpc::internal::RpcMethod rpcmethod_DeletePolicy_;
    const ::grpc::internal::RpcMethod rpcmethod_ListPolicy_;
    const ::grpc::internal::RpcMethod rpcmethod_SetPolicies_;
    const ::grpc::internal::RpcMethod rpcmethod_AddDefinedSet_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteDefinedSet_;
    const ::grpc::internal::RpcMethod rpcmethod_ListDefinedSet_;
    const ::grpc::internal::RpcMethod rpcmethod_AddStatement_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteStatement_;
    const ::grpc::internal::RpcMethod rpcmethod_ListStatement_;
    const ::grpc::internal::RpcMethod rpcmethod_AddPolicyAssignment_;
    const ::grpc::internal::RpcMethod rpcmethod_DeletePolicyAssignment_;
    const ::grpc::internal::RpcMethod rpcmethod_ListPolicyAssignment_;
    const ::grpc::internal::RpcMethod rpcmethod_SetPolicyAssignment_;
    const ::grpc::internal::RpcMethod rpcmethod_AddRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_ListRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_EnableRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_DisableRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_ResetRpki_;
    const ::grpc::internal::RpcMethod rpcmethod_ListRpkiTable_;
    const ::grpc::internal::RpcMethod rpcmethod_EnableZebra_;
    const ::grpc::internal::RpcMethod rpcmethod_EnableMrt_;
    const ::grpc::internal::RpcMethod rpcmethod_DisableMrt_;
    const ::grpc::internal::RpcMethod rpcmethod_AddBmp_;
    const ::grpc::internal::RpcMethod rpcmethod_DeleteBmp_;
    const ::grpc::internal::RpcMethod rpcmethod_ListBmp_;
    const ::grpc::internal::RpcMethod rpcmethod_SetLogLevel_;
  };
  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());

  class Service : public ::grpc::Service {
   public:
    Service();
    virtual ~Service();
    virtual ::grpc::Status StartBgp(::grpc::ServerContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status StopBgp(::grpc::ServerContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status GetBgp(::grpc::ServerContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response);
    virtual ::grpc::Status WatchEvent(::grpc::ServerContext* context, const ::apipb::WatchEventRequest* request, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* writer);
    virtual ::grpc::Status AddPeer(::grpc::ServerContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeletePeer(::grpc::ServerContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListPeer(::grpc::ServerContext* context, const ::apipb::ListPeerRequest* request, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* writer);
    virtual ::grpc::Status UpdatePeer(::grpc::ServerContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response);
    virtual ::grpc::Status ResetPeer(::grpc::ServerContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ShutdownPeer(::grpc::ServerContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status EnablePeer(::grpc::ServerContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DisablePeer(::grpc::ServerContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status AddPeerGroup(::grpc::ServerContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeletePeerGroup(::grpc::ServerContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListPeerGroup(::grpc::ServerContext* context, const ::apipb::ListPeerGroupRequest* request, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* writer);
    virtual ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response);
    virtual ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* context, const ::apipb::ListDynamicNeighborRequest* request, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* writer);
    virtual ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status AddPath(::grpc::ServerContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response);
    virtual ::grpc::Status DeletePath(::grpc::ServerContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListPath(::grpc::ServerContext* context, const ::apipb::ListPathRequest* request, ::grpc::ServerWriter< ::apipb::ListPathResponse>* writer);
    virtual ::grpc::Status AddPathStream(::grpc::ServerContext* context, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* reader, ::google::protobuf::Empty* response);
    virtual ::grpc::Status GetTable(::grpc::ServerContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response);
    virtual ::grpc::Status AddVrf(::grpc::ServerContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeleteVrf(::grpc::ServerContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListVrf(::grpc::ServerContext* context, const ::apipb::ListVrfRequest* request, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* writer);
    virtual ::grpc::Status AddPolicy(::grpc::ServerContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeletePolicy(::grpc::ServerContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListPolicy(::grpc::ServerContext* context, const ::apipb::ListPolicyRequest* request, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* writer);
    virtual ::grpc::Status SetPolicies(::grpc::ServerContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status AddDefinedSet(::grpc::ServerContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListDefinedSet(::grpc::ServerContext* context, const ::apipb::ListDefinedSetRequest* request, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* writer);
    virtual ::grpc::Status AddStatement(::grpc::ServerContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeleteStatement(::grpc::ServerContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListStatement(::grpc::ServerContext* context, const ::apipb::ListStatementRequest* request, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* writer);
    virtual ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* context, const ::apipb::ListPolicyAssignmentRequest* request, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* writer);
    virtual ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status AddRpki(::grpc::ServerContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeleteRpki(::grpc::ServerContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListRpki(::grpc::ServerContext* context, const ::apipb::ListRpkiRequest* request, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* writer);
    virtual ::grpc::Status EnableRpki(::grpc::ServerContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DisableRpki(::grpc::ServerContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ResetRpki(::grpc::ServerContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListRpkiTable(::grpc::ServerContext* context, const ::apipb::ListRpkiTableRequest* request, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* writer);
    virtual ::grpc::Status EnableZebra(::grpc::ServerContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status EnableMrt(::grpc::ServerContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DisableMrt(::grpc::ServerContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status AddBmp(::grpc::ServerContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status DeleteBmp(::grpc::ServerContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response);
    virtual ::grpc::Status ListBmp(::grpc::ServerContext* context, const ::apipb::ListBmpRequest* request, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* writer);
    virtual ::grpc::Status SetLogLevel(::grpc::ServerContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response);
  };
  template <class BaseClass>
  class WithAsyncMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_StartBgp() {
      ::grpc::Service::MarkMethodAsync(0);
    }
    ~WithAsyncMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestStartBgp(::grpc::ServerContext* context, ::apipb::StartBgpRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_StopBgp() {
      ::grpc::Service::MarkMethodAsync(1);
    }
    ~WithAsyncMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestStopBgp(::grpc::ServerContext* context, ::apipb::StopBgpRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_GetBgp() {
      ::grpc::Service::MarkMethodAsync(2);
    }
    ~WithAsyncMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestGetBgp(::grpc::ServerContext* context, ::apipb::GetBgpRequest* request, ::grpc::ServerAsyncResponseWriter< ::apipb::GetBgpResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_WatchEvent() {
      ::grpc::Service::MarkMethodAsync(3);
    }
    ~WithAsyncMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestWatchEvent(::grpc::ServerContext* context, ::apipb::WatchEventRequest* request, ::grpc::ServerAsyncWriter< ::apipb::WatchEventResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(3, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPeer() {
      ::grpc::Service::MarkMethodAsync(4);
    }
    ~WithAsyncMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPeer(::grpc::ServerContext* context, ::apipb::AddPeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeletePeer() {
      ::grpc::Service::MarkMethodAsync(5);
    }
    ~WithAsyncMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePeer(::grpc::ServerContext* context, ::apipb::DeletePeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListPeer() {
      ::grpc::Service::MarkMethodAsync(6);
    }
    ~WithAsyncMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPeer(::grpc::ServerContext* context, ::apipb::ListPeerRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListPeerResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(6, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodAsync(7);
    }
    ~WithAsyncMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestUpdatePeer(::grpc::ServerContext* context, ::apipb::UpdatePeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::apipb::UpdatePeerResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ResetPeer() {
      ::grpc::Service::MarkMethodAsync(8);
    }
    ~WithAsyncMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestResetPeer(::grpc::ServerContext* context, ::apipb::ResetPeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodAsync(9);
    }
    ~WithAsyncMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestShutdownPeer(::grpc::ServerContext* context, ::apipb::ShutdownPeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(9, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_EnablePeer() {
      ::grpc::Service::MarkMethodAsync(10);
    }
    ~WithAsyncMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnablePeer(::grpc::ServerContext* context, ::apipb::EnablePeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(10, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DisablePeer() {
      ::grpc::Service::MarkMethodAsync(11);
    }
    ~WithAsyncMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisablePeer(::grpc::ServerContext* context, ::apipb::DisablePeerRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(11, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodAsync(12);
    }
    ~WithAsyncMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPeerGroup(::grpc::ServerContext* context, ::apipb::AddPeerGroupRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(12, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodAsync(13);
    }
    ~WithAsyncMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePeerGroup(::grpc::ServerContext* context, ::apipb::DeletePeerGroupRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(13, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodAsync(14);
    }
    ~WithAsyncMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPeerGroup(::grpc::ServerContext* context, ::apipb::ListPeerGroupRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListPeerGroupResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(14, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodAsync(15);
    }
    ~WithAsyncMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestUpdatePeerGroup(::grpc::ServerContext* context, ::apipb::UpdatePeerGroupRequest* request, ::grpc::ServerAsyncResponseWriter< ::apipb::UpdatePeerGroupResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(15, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodAsync(16);
    }
    ~WithAsyncMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddDynamicNeighbor(::grpc::ServerContext* context, ::apipb::AddDynamicNeighborRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(16, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodAsync(17);
    }
    ~WithAsyncMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListDynamicNeighbor(::grpc::ServerContext* context, ::apipb::ListDynamicNeighborRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListDynamicNeighborResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(17, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodAsync(18);
    }
    ~WithAsyncMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteDynamicNeighbor(::grpc::ServerContext* context, ::apipb::DeleteDynamicNeighborRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(18, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPath() {
      ::grpc::Service::MarkMethodAsync(19);
    }
    ~WithAsyncMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPath(::grpc::ServerContext* context, ::apipb::AddPathRequest* request, ::grpc::ServerAsyncResponseWriter< ::apipb::AddPathResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeletePath() {
      ::grpc::Service::MarkMethodAsync(20);
    }
    ~WithAsyncMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePath(::grpc::ServerContext* context, ::apipb::DeletePathRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListPath() {
      ::grpc::Service::MarkMethodAsync(21);
    }
    ~WithAsyncMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPath(::grpc::ServerContext* context, ::apipb::ListPathRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListPathResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(21, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPathStream : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPathStream() {
      ::grpc::Service::MarkMethodAsync(22);
    }
    ~WithAsyncMethod_AddPathStream() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPathStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* /*reader*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPathStream(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::google::protobuf::Empty, ::apipb::AddPathStreamRequest>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncClientStreaming(22, context, reader, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_GetTable() {
      ::grpc::Service::MarkMethodAsync(23);
    }
    ~WithAsyncMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestGetTable(::grpc::ServerContext* context, ::apipb::GetTableRequest* request, ::grpc::ServerAsyncResponseWriter< ::apipb::GetTableResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddVrf() {
      ::grpc::Service::MarkMethodAsync(24);
    }
    ~WithAsyncMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddVrf(::grpc::ServerContext* context, ::apipb::AddVrfRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodAsync(25);
    }
    ~WithAsyncMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteVrf(::grpc::ServerContext* context, ::apipb::DeleteVrfRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListVrf() {
      ::grpc::Service::MarkMethodAsync(26);
    }
    ~WithAsyncMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListVrf(::grpc::ServerContext* context, ::apipb::ListVrfRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListVrfResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(26, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPolicy() {
      ::grpc::Service::MarkMethodAsync(27);
    }
    ~WithAsyncMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPolicy(::grpc::ServerContext* context, ::apipb::AddPolicyRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodAsync(28);
    }
    ~WithAsyncMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePolicy(::grpc::ServerContext* context, ::apipb::DeletePolicyRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListPolicy() {
      ::grpc::Service::MarkMethodAsync(29);
    }
    ~WithAsyncMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPolicy(::grpc::ServerContext* context, ::apipb::ListPolicyRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListPolicyResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(29, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_SetPolicies() {
      ::grpc::Service::MarkMethodAsync(30);
    }
    ~WithAsyncMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetPolicies(::grpc::ServerContext* context, ::apipb::SetPoliciesRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodAsync(31);
    }
    ~WithAsyncMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddDefinedSet(::grpc::ServerContext* context, ::apipb::AddDefinedSetRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodAsync(32);
    }
    ~WithAsyncMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteDefinedSet(::grpc::ServerContext* context, ::apipb::DeleteDefinedSetRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodAsync(33);
    }
    ~WithAsyncMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListDefinedSet(::grpc::ServerContext* context, ::apipb::ListDefinedSetRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListDefinedSetResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(33, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddStatement() {
      ::grpc::Service::MarkMethodAsync(34);
    }
    ~WithAsyncMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddStatement(::grpc::ServerContext* context, ::apipb::AddStatementRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodAsync(35);
    }
    ~WithAsyncMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteStatement(::grpc::ServerContext* context, ::apipb::DeleteStatementRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListStatement() {
      ::grpc::Service::MarkMethodAsync(36);
    }
    ~WithAsyncMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListStatement(::grpc::ServerContext* context, ::apipb::ListStatementRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListStatementResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(36, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodAsync(37);
    }
    ~WithAsyncMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPolicyAssignment(::grpc::ServerContext* context, ::apipb::AddPolicyAssignmentRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodAsync(38);
    }
    ~WithAsyncMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePolicyAssignment(::grpc::ServerContext* context, ::apipb::DeletePolicyAssignmentRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodAsync(39);
    }
    ~WithAsyncMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPolicyAssignment(::grpc::ServerContext* context, ::apipb::ListPolicyAssignmentRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListPolicyAssignmentResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(39, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodAsync(40);
    }
    ~WithAsyncMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetPolicyAssignment(::grpc::ServerContext* context, ::apipb::SetPolicyAssignmentRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddRpki() {
      ::grpc::Service::MarkMethodAsync(41);
    }
    ~WithAsyncMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddRpki(::grpc::ServerContext* context, ::apipb::AddRpkiRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodAsync(42);
    }
    ~WithAsyncMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteRpki(::grpc::ServerContext* context, ::apipb::DeleteRpkiRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListRpki() {
      ::grpc::Service::MarkMethodAsync(43);
    }
    ~WithAsyncMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListRpki(::grpc::ServerContext* context, ::apipb::ListRpkiRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListRpkiResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(43, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_EnableRpki() {
      ::grpc::Service::MarkMethodAsync(44);
    }
    ~WithAsyncMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableRpki(::grpc::ServerContext* context, ::apipb::EnableRpkiRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DisableRpki() {
      ::grpc::Service::MarkMethodAsync(45);
    }
    ~WithAsyncMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisableRpki(::grpc::ServerContext* context, ::apipb::DisableRpkiRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ResetRpki() {
      ::grpc::Service::MarkMethodAsync(46);
    }
    ~WithAsyncMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestResetRpki(::grpc::ServerContext* context, ::apipb::ResetRpkiRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodAsync(47);
    }
    ~WithAsyncMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListRpkiTable(::grpc::ServerContext* context, ::apipb::ListRpkiTableRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListRpkiTableResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(47, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_EnableZebra() {
      ::grpc::Service::MarkMethodAsync(48);
    }
    ~WithAsyncMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableZebra(::grpc::ServerContext* context, ::apipb::EnableZebraRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_EnableMrt() {
      ::grpc::Service::MarkMethodAsync(49);
    }
    ~WithAsyncMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableMrt(::grpc::ServerContext* context, ::apipb::EnableMrtRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DisableMrt() {
      ::grpc::Service::MarkMethodAsync(50);
    }
    ~WithAsyncMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisableMrt(::grpc::ServerContext* context, ::apipb::DisableMrtRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_AddBmp() {
      ::grpc::Service::MarkMethodAsync(51);
    }
    ~WithAsyncMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddBmp(::grpc::ServerContext* context, ::apipb::AddBmpRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodAsync(52);
    }
    ~WithAsyncMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteBmp(::grpc::ServerContext* context, ::apipb::DeleteBmpRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(52, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_ListBmp() {
      ::grpc::Service::MarkMethodAsync(53);
    }
    ~WithAsyncMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListBmp(::grpc::ServerContext* context, ::apipb::ListBmpRequest* request, ::grpc::ServerAsyncWriter< ::apipb::ListBmpResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(53, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithAsyncMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithAsyncMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodAsync(54);
    }
    ~WithAsyncMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetLogLevel(::grpc::ServerContext* context, ::apipb::SetLogLevelRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(54, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  typedef WithAsyncMethod_StartBgp<WithAsyncMethod_StopBgp<WithAsyncMethod_GetBgp<WithAsyncMethod_WatchEvent<WithAsyncMethod_AddPeer<WithAsyncMethod_DeletePeer<WithAsyncMethod_ListPeer<WithAsyncMethod_UpdatePeer<WithAsyncMethod_ResetPeer<WithAsyncMethod_ShutdownPeer<WithAsyncMethod_EnablePeer<WithAsyncMethod_DisablePeer<WithAsyncMethod_AddPeerGroup<WithAsyncMethod_DeletePeerGroup<WithAsyncMethod_ListPeerGroup<WithAsyncMethod_UpdatePeerGroup<WithAsyncMethod_AddDynamicNeighbor<WithAsyncMethod_ListDynamicNeighbor<WithAsyncMethod_DeleteDynamicNeighbor<WithAsyncMethod_AddPath<WithAsyncMethod_DeletePath<WithAsyncMethod_ListPath<WithAsyncMethod_AddPathStream<WithAsyncMethod_GetTable<WithAsyncMethod_AddVrf<WithAsyncMethod_DeleteVrf<WithAsyncMethod_ListVrf<WithAsyncMethod_AddPolicy<WithAsyncMethod_DeletePolicy<WithAsyncMethod_ListPolicy<WithAsyncMethod_SetPolicies<WithAsyncMethod_AddDefinedSet<WithAsyncMethod_DeleteDefinedSet<WithAsyncMethod_ListDefinedSet<WithAsyncMethod_AddStatement<WithAsyncMethod_DeleteStatement<WithAsyncMethod_ListStatement<WithAsyncMethod_AddPolicyAssignment<WithAsyncMethod_DeletePolicyAssignment<WithAsyncMethod_ListPolicyAssignment<WithAsyncMethod_SetPolicyAssignment<WithAsyncMethod_AddRpki<WithAsyncMethod_DeleteRpki<WithAsyncMethod_ListRpki<WithAsyncMethod_EnableRpki<WithAsyncMethod_DisableRpki<WithAsyncMethod_ResetRpki<WithAsyncMethod_ListRpkiTable<WithAsyncMethod_EnableZebra<WithAsyncMethod_EnableMrt<WithAsyncMethod_DisableMrt<WithAsyncMethod_AddBmp<WithAsyncMethod_DeleteBmp<WithAsyncMethod_ListBmp<WithAsyncMethod_SetLogLevel<Service > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService;
  template <class BaseClass>
  class WithCallbackMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_StartBgp() {
      ::grpc::Service::MarkMethodCallback(0,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::StartBgpRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::StartBgpRequest* request, ::google::protobuf::Empty* response) { return this->StartBgp(context, request, response); }));}
    void SetMessageAllocatorFor_StartBgp(
        ::grpc::MessageAllocator< ::apipb::StartBgpRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::StartBgpRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* StartBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_StopBgp() {
      ::grpc::Service::MarkMethodCallback(1,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::StopBgpRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::StopBgpRequest* request, ::google::protobuf::Empty* response) { return this->StopBgp(context, request, response); }));}
    void SetMessageAllocatorFor_StopBgp(
        ::grpc::MessageAllocator< ::apipb::StopBgpRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::StopBgpRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* StopBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_GetBgp() {
      ::grpc::Service::MarkMethodCallback(2,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::GetBgpRequest, ::apipb::GetBgpResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::GetBgpRequest* request, ::apipb::GetBgpResponse* response) { return this->GetBgp(context, request, response); }));}
    void SetMessageAllocatorFor_GetBgp(
        ::grpc::MessageAllocator< ::apipb::GetBgpRequest, ::apipb::GetBgpResponse>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::GetBgpRequest, ::apipb::GetBgpResponse>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* GetBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_WatchEvent() {
      ::grpc::Service::MarkMethodCallback(3,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::WatchEventRequest, ::apipb::WatchEventResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::WatchEventRequest* request) { return this->WatchEvent(context, request); }));
    }
    ~WithCallbackMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::WatchEventResponse>* WatchEvent(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPeer() {
      ::grpc::Service::MarkMethodCallback(4,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddPeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddPeerRequest* request, ::google::protobuf::Empty* response) { return this->AddPeer(context, request, response); }));}
    void SetMessageAllocatorFor_AddPeer(
        ::grpc::MessageAllocator< ::apipb::AddPeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(4);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddPeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeletePeer() {
      ::grpc::Service::MarkMethodCallback(5,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeletePeerRequest* request, ::google::protobuf::Empty* response) { return this->DeletePeer(context, request, response); }));}
    void SetMessageAllocatorFor_DeletePeer(
        ::grpc::MessageAllocator< ::apipb::DeletePeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(5);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListPeer() {
      ::grpc::Service::MarkMethodCallback(6,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListPeerRequest, ::apipb::ListPeerResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListPeerRequest* request) { return this->ListPeer(context, request); }));
    }
    ~WithCallbackMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListPeerResponse>* ListPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodCallback(7,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::UpdatePeerRequest, ::apipb::UpdatePeerResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::UpdatePeerRequest* request, ::apipb::UpdatePeerResponse* response) { return this->UpdatePeer(context, request, response); }));}
    void SetMessageAllocatorFor_UpdatePeer(
        ::grpc::MessageAllocator< ::apipb::UpdatePeerRequest, ::apipb::UpdatePeerResponse>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(7);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::UpdatePeerRequest, ::apipb::UpdatePeerResponse>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* UpdatePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ResetPeer() {
      ::grpc::Service::MarkMethodCallback(8,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::ResetPeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ResetPeerRequest* request, ::google::protobuf::Empty* response) { return this->ResetPeer(context, request, response); }));}
    void SetMessageAllocatorFor_ResetPeer(
        ::grpc::MessageAllocator< ::apipb::ResetPeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(8);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::ResetPeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ResetPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodCallback(9,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::ShutdownPeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ShutdownPeerRequest* request, ::google::protobuf::Empty* response) { return this->ShutdownPeer(context, request, response); }));}
    void SetMessageAllocatorFor_ShutdownPeer(
        ::grpc::MessageAllocator< ::apipb::ShutdownPeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(9);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::ShutdownPeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ShutdownPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_EnablePeer() {
      ::grpc::Service::MarkMethodCallback(10,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::EnablePeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::EnablePeerRequest* request, ::google::protobuf::Empty* response) { return this->EnablePeer(context, request, response); }));}
    void SetMessageAllocatorFor_EnablePeer(
        ::grpc::MessageAllocator< ::apipb::EnablePeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(10);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::EnablePeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnablePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DisablePeer() {
      ::grpc::Service::MarkMethodCallback(11,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DisablePeerRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DisablePeerRequest* request, ::google::protobuf::Empty* response) { return this->DisablePeer(context, request, response); }));}
    void SetMessageAllocatorFor_DisablePeer(
        ::grpc::MessageAllocator< ::apipb::DisablePeerRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(11);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DisablePeerRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisablePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodCallback(12,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddPeerGroupRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddPeerGroupRequest* request, ::google::protobuf::Empty* response) { return this->AddPeerGroup(context, request, response); }));}
    void SetMessageAllocatorFor_AddPeerGroup(
        ::grpc::MessageAllocator< ::apipb::AddPeerGroupRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(12);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddPeerGroupRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodCallback(13,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePeerGroupRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeletePeerGroupRequest* request, ::google::protobuf::Empty* response) { return this->DeletePeerGroup(context, request, response); }));}
    void SetMessageAllocatorFor_DeletePeerGroup(
        ::grpc::MessageAllocator< ::apipb::DeletePeerGroupRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(13);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePeerGroupRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodCallback(14,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListPeerGroupRequest, ::apipb::ListPeerGroupResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListPeerGroupRequest* request) { return this->ListPeerGroup(context, request); }));
    }
    ~WithCallbackMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListPeerGroupResponse>* ListPeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodCallback(15,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::UpdatePeerGroupRequest, ::apipb::UpdatePeerGroupResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::UpdatePeerGroupRequest* request, ::apipb::UpdatePeerGroupResponse* response) { return this->UpdatePeerGroup(context, request, response); }));}
    void SetMessageAllocatorFor_UpdatePeerGroup(
        ::grpc::MessageAllocator< ::apipb::UpdatePeerGroupRequest, ::apipb::UpdatePeerGroupResponse>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(15);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::UpdatePeerGroupRequest, ::apipb::UpdatePeerGroupResponse>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* UpdatePeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodCallback(16,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddDynamicNeighborRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddDynamicNeighborRequest* request, ::google::protobuf::Empty* response) { return this->AddDynamicNeighbor(context, request, response); }));}
    void SetMessageAllocatorFor_AddDynamicNeighbor(
        ::grpc::MessageAllocator< ::apipb::AddDynamicNeighborRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(16);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddDynamicNeighborRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodCallback(17,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListDynamicNeighborRequest, ::apipb::ListDynamicNeighborResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListDynamicNeighborRequest* request) { return this->ListDynamicNeighbor(context, request); }));
    }
    ~WithCallbackMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListDynamicNeighborResponse>* ListDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodCallback(18,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteDynamicNeighborRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteDynamicNeighborRequest* request, ::google::protobuf::Empty* response) { return this->DeleteDynamicNeighbor(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteDynamicNeighbor(
        ::grpc::MessageAllocator< ::apipb::DeleteDynamicNeighborRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(18);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteDynamicNeighborRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPath() {
      ::grpc::Service::MarkMethodCallback(19,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddPathRequest, ::apipb::AddPathResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddPathRequest* request, ::apipb::AddPathResponse* response) { return this->AddPath(context, request, response); }));}
    void SetMessageAllocatorFor_AddPath(
        ::grpc::MessageAllocator< ::apipb::AddPathRequest, ::apipb::AddPathResponse>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(19);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddPathRequest, ::apipb::AddPathResponse>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPath(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeletePath() {
      ::grpc::Service::MarkMethodCallback(20,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePathRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeletePathRequest* request, ::google::protobuf::Empty* response) { return this->DeletePath(context, request, response); }));}
    void SetMessageAllocatorFor_DeletePath(
        ::grpc::MessageAllocator< ::apipb::DeletePathRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(20);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePathRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePath(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListPath() {
      ::grpc::Service::MarkMethodCallback(21,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListPathRequest, ::apipb::ListPathResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListPathRequest* request) { return this->ListPath(context, request); }));
    }
    ~WithCallbackMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListPathResponse>* ListPath(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPathStream : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPathStream() {
      ::grpc::Service::MarkMethodCallback(22,
          new ::grpc::internal::CallbackClientStreamingHandler< ::apipb::AddPathStreamRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, ::google::protobuf::Empty* response) { return this->AddPathStream(context, response); }));
    }
    ~WithCallbackMethod_AddPathStream() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPathStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* /*reader*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerReadReactor< ::apipb::AddPathStreamRequest>* AddPathStream(
      ::grpc::CallbackServerContext* /*context*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_GetTable() {
      ::grpc::Service::MarkMethodCallback(23,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::GetTableRequest, ::apipb::GetTableResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::GetTableRequest* request, ::apipb::GetTableResponse* response) { return this->GetTable(context, request, response); }));}
    void SetMessageAllocatorFor_GetTable(
        ::grpc::MessageAllocator< ::apipb::GetTableRequest, ::apipb::GetTableResponse>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(23);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::GetTableRequest, ::apipb::GetTableResponse>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* GetTable(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddVrf() {
      ::grpc::Service::MarkMethodCallback(24,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddVrfRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddVrfRequest* request, ::google::protobuf::Empty* response) { return this->AddVrf(context, request, response); }));}
    void SetMessageAllocatorFor_AddVrf(
        ::grpc::MessageAllocator< ::apipb::AddVrfRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(24);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddVrfRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodCallback(25,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteVrfRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteVrfRequest* request, ::google::protobuf::Empty* response) { return this->DeleteVrf(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteVrf(
        ::grpc::MessageAllocator< ::apipb::DeleteVrfRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(25);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteVrfRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListVrf() {
      ::grpc::Service::MarkMethodCallback(26,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListVrfRequest, ::apipb::ListVrfResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListVrfRequest* request) { return this->ListVrf(context, request); }));
    }
    ~WithCallbackMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListVrfResponse>* ListVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPolicy() {
      ::grpc::Service::MarkMethodCallback(27,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddPolicyRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddPolicyRequest* request, ::google::protobuf::Empty* response) { return this->AddPolicy(context, request, response); }));}
    void SetMessageAllocatorFor_AddPolicy(
        ::grpc::MessageAllocator< ::apipb::AddPolicyRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(27);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddPolicyRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodCallback(28,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePolicyRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeletePolicyRequest* request, ::google::protobuf::Empty* response) { return this->DeletePolicy(context, request, response); }));}
    void SetMessageAllocatorFor_DeletePolicy(
        ::grpc::MessageAllocator< ::apipb::DeletePolicyRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(28);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePolicyRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListPolicy() {
      ::grpc::Service::MarkMethodCallback(29,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListPolicyRequest, ::apipb::ListPolicyResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListPolicyRequest* request) { return this->ListPolicy(context, request); }));
    }
    ~WithCallbackMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListPolicyResponse>* ListPolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_SetPolicies() {
      ::grpc::Service::MarkMethodCallback(30,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::SetPoliciesRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::SetPoliciesRequest* request, ::google::protobuf::Empty* response) { return this->SetPolicies(context, request, response); }));}
    void SetMessageAllocatorFor_SetPolicies(
        ::grpc::MessageAllocator< ::apipb::SetPoliciesRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(30);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::SetPoliciesRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetPolicies(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodCallback(31,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddDefinedSetRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddDefinedSetRequest* request, ::google::protobuf::Empty* response) { return this->AddDefinedSet(context, request, response); }));}
    void SetMessageAllocatorFor_AddDefinedSet(
        ::grpc::MessageAllocator< ::apipb::AddDefinedSetRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(31);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddDefinedSetRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodCallback(32,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteDefinedSetRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteDefinedSetRequest* request, ::google::protobuf::Empty* response) { return this->DeleteDefinedSet(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteDefinedSet(
        ::grpc::MessageAllocator< ::apipb::DeleteDefinedSetRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(32);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteDefinedSetRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodCallback(33,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListDefinedSetRequest, ::apipb::ListDefinedSetResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListDefinedSetRequest* request) { return this->ListDefinedSet(context, request); }));
    }
    ~WithCallbackMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListDefinedSetResponse>* ListDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddStatement() {
      ::grpc::Service::MarkMethodCallback(34,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddStatementRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddStatementRequest* request, ::google::protobuf::Empty* response) { return this->AddStatement(context, request, response); }));}
    void SetMessageAllocatorFor_AddStatement(
        ::grpc::MessageAllocator< ::apipb::AddStatementRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(34);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddStatementRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodCallback(35,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteStatementRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteStatementRequest* request, ::google::protobuf::Empty* response) { return this->DeleteStatement(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteStatement(
        ::grpc::MessageAllocator< ::apipb::DeleteStatementRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(35);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteStatementRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListStatement() {
      ::grpc::Service::MarkMethodCallback(36,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListStatementRequest, ::apipb::ListStatementResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListStatementRequest* request) { return this->ListStatement(context, request); }));
    }
    ~WithCallbackMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListStatementResponse>* ListStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodCallback(37,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddPolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddPolicyAssignmentRequest* request, ::google::protobuf::Empty* response) { return this->AddPolicyAssignment(context, request, response); }));}
    void SetMessageAllocatorFor_AddPolicyAssignment(
        ::grpc::MessageAllocator< ::apipb::AddPolicyAssignmentRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(37);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddPolicyAssignmentRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodCallback(38,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeletePolicyAssignmentRequest* request, ::google::protobuf::Empty* response) { return this->DeletePolicyAssignment(context, request, response); }));}
    void SetMessageAllocatorFor_DeletePolicyAssignment(
        ::grpc::MessageAllocator< ::apipb::DeletePolicyAssignmentRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(38);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeletePolicyAssignmentRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodCallback(39,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListPolicyAssignmentRequest, ::apipb::ListPolicyAssignmentResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListPolicyAssignmentRequest* request) { return this->ListPolicyAssignment(context, request); }));
    }
    ~WithCallbackMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListPolicyAssignmentResponse>* ListPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodCallback(40,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::SetPolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::SetPolicyAssignmentRequest* request, ::google::protobuf::Empty* response) { return this->SetPolicyAssignment(context, request, response); }));}
    void SetMessageAllocatorFor_SetPolicyAssignment(
        ::grpc::MessageAllocator< ::apipb::SetPolicyAssignmentRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(40);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::SetPolicyAssignmentRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddRpki() {
      ::grpc::Service::MarkMethodCallback(41,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddRpkiRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddRpkiRequest* request, ::google::protobuf::Empty* response) { return this->AddRpki(context, request, response); }));}
    void SetMessageAllocatorFor_AddRpki(
        ::grpc::MessageAllocator< ::apipb::AddRpkiRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(41);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddRpkiRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodCallback(42,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteRpkiRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteRpkiRequest* request, ::google::protobuf::Empty* response) { return this->DeleteRpki(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteRpki(
        ::grpc::MessageAllocator< ::apipb::DeleteRpkiRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(42);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteRpkiRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListRpki() {
      ::grpc::Service::MarkMethodCallback(43,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListRpkiRequest, ::apipb::ListRpkiResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListRpkiRequest* request) { return this->ListRpki(context, request); }));
    }
    ~WithCallbackMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListRpkiResponse>* ListRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_EnableRpki() {
      ::grpc::Service::MarkMethodCallback(44,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::EnableRpkiRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::EnableRpkiRequest* request, ::google::protobuf::Empty* response) { return this->EnableRpki(context, request, response); }));}
    void SetMessageAllocatorFor_EnableRpki(
        ::grpc::MessageAllocator< ::apipb::EnableRpkiRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(44);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::EnableRpkiRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DisableRpki() {
      ::grpc::Service::MarkMethodCallback(45,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DisableRpkiRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DisableRpkiRequest* request, ::google::protobuf::Empty* response) { return this->DisableRpki(context, request, response); }));}
    void SetMessageAllocatorFor_DisableRpki(
        ::grpc::MessageAllocator< ::apipb::DisableRpkiRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(45);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DisableRpkiRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisableRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ResetRpki() {
      ::grpc::Service::MarkMethodCallback(46,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::ResetRpkiRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ResetRpkiRequest* request, ::google::protobuf::Empty* response) { return this->ResetRpki(context, request, response); }));}
    void SetMessageAllocatorFor_ResetRpki(
        ::grpc::MessageAllocator< ::apipb::ResetRpkiRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(46);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::ResetRpkiRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ResetRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodCallback(47,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListRpkiTableRequest, ::apipb::ListRpkiTableResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListRpkiTableRequest* request) { return this->ListRpkiTable(context, request); }));
    }
    ~WithCallbackMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListRpkiTableResponse>* ListRpkiTable(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_EnableZebra() {
      ::grpc::Service::MarkMethodCallback(48,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::EnableZebraRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::EnableZebraRequest* request, ::google::protobuf::Empty* response) { return this->EnableZebra(context, request, response); }));}
    void SetMessageAllocatorFor_EnableZebra(
        ::grpc::MessageAllocator< ::apipb::EnableZebraRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(48);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::EnableZebraRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableZebra(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_EnableMrt() {
      ::grpc::Service::MarkMethodCallback(49,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::EnableMrtRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::EnableMrtRequest* request, ::google::protobuf::Empty* response) { return this->EnableMrt(context, request, response); }));}
    void SetMessageAllocatorFor_EnableMrt(
        ::grpc::MessageAllocator< ::apipb::EnableMrtRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(49);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::EnableMrtRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableMrt(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DisableMrt() {
      ::grpc::Service::MarkMethodCallback(50,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DisableMrtRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DisableMrtRequest* request, ::google::protobuf::Empty* response) { return this->DisableMrt(context, request, response); }));}
    void SetMessageAllocatorFor_DisableMrt(
        ::grpc::MessageAllocator< ::apipb::DisableMrtRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(50);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DisableMrtRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisableMrt(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_AddBmp() {
      ::grpc::Service::MarkMethodCallback(51,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::AddBmpRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::AddBmpRequest* request, ::google::protobuf::Empty* response) { return this->AddBmp(context, request, response); }));}
    void SetMessageAllocatorFor_AddBmp(
        ::grpc::MessageAllocator< ::apipb::AddBmpRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(51);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::AddBmpRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodCallback(52,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteBmpRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::DeleteBmpRequest* request, ::google::protobuf::Empty* response) { return this->DeleteBmp(context, request, response); }));}
    void SetMessageAllocatorFor_DeleteBmp(
        ::grpc::MessageAllocator< ::apipb::DeleteBmpRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(52);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::DeleteBmpRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_ListBmp() {
      ::grpc::Service::MarkMethodCallback(53,
          new ::grpc::internal::CallbackServerStreamingHandler< ::apipb::ListBmpRequest, ::apipb::ListBmpResponse>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::ListBmpRequest* request) { return this->ListBmp(context, request); }));
    }
    ~WithCallbackMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::apipb::ListBmpResponse>* ListBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithCallbackMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithCallbackMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodCallback(54,
          new ::grpc::internal::CallbackUnaryHandler< ::apipb::SetLogLevelRequest, ::google::protobuf::Empty>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::apipb::SetLogLevelRequest* request, ::google::protobuf::Empty* response) { return this->SetLogLevel(context, request, response); }));}
    void SetMessageAllocatorFor_SetLogLevel(
        ::grpc::MessageAllocator< ::apipb::SetLogLevelRequest, ::google::protobuf::Empty>* allocator) {
      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(54);
      static_cast<::grpc::internal::CallbackUnaryHandler< ::apipb::SetLogLevelRequest, ::google::protobuf::Empty>*>(handler)
              ->SetMessageAllocator(allocator);
    }
    ~WithCallbackMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetLogLevel(
      ::grpc::CallbackServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/)  { return nullptr; }
  };
  typedef WithCallbackMethod_StartBgp<WithCallbackMethod_StopBgp<WithCallbackMethod_GetBgp<WithCallbackMethod_WatchEvent<WithCallbackMethod_AddPeer<WithCallbackMethod_DeletePeer<WithCallbackMethod_ListPeer<WithCallbackMethod_UpdatePeer<WithCallbackMethod_ResetPeer<WithCallbackMethod_ShutdownPeer<WithCallbackMethod_EnablePeer<WithCallbackMethod_DisablePeer<WithCallbackMethod_AddPeerGroup<WithCallbackMethod_DeletePeerGroup<WithCallbackMethod_ListPeerGroup<WithCallbackMethod_UpdatePeerGroup<WithCallbackMethod_AddDynamicNeighbor<WithCallbackMethod_ListDynamicNeighbor<WithCallbackMethod_DeleteDynamicNeighbor<WithCallbackMethod_AddPath<WithCallbackMethod_DeletePath<WithCallbackMethod_ListPath<WithCallbackMethod_AddPathStream<WithCallbackMethod_GetTable<WithCallbackMethod_AddVrf<WithCallbackMethod_DeleteVrf<WithCallbackMethod_ListVrf<WithCallbackMethod_AddPolicy<WithCallbackMethod_DeletePolicy<WithCallbackMethod_ListPolicy<WithCallbackMethod_SetPolicies<WithCallbackMethod_AddDefinedSet<WithCallbackMethod_DeleteDefinedSet<WithCallbackMethod_ListDefinedSet<WithCallbackMethod_AddStatement<WithCallbackMethod_DeleteStatement<WithCallbackMethod_ListStatement<WithCallbackMethod_AddPolicyAssignment<WithCallbackMethod_DeletePolicyAssignment<WithCallbackMethod_ListPolicyAssignment<WithCallbackMethod_SetPolicyAssignment<WithCallbackMethod_AddRpki<WithCallbackMethod_DeleteRpki<WithCallbackMethod_ListRpki<WithCallbackMethod_EnableRpki<WithCallbackMethod_DisableRpki<WithCallbackMethod_ResetRpki<WithCallbackMethod_ListRpkiTable<WithCallbackMethod_EnableZebra<WithCallbackMethod_EnableMrt<WithCallbackMethod_DisableMrt<WithCallbackMethod_AddBmp<WithCallbackMethod_DeleteBmp<WithCallbackMethod_ListBmp<WithCallbackMethod_SetLogLevel<Service > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > CallbackService;
  typedef CallbackService ExperimentalCallbackService;
  template <class BaseClass>
  class WithGenericMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_StartBgp() {
      ::grpc::Service::MarkMethodGeneric(0);
    }
    ~WithGenericMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_StopBgp() {
      ::grpc::Service::MarkMethodGeneric(1);
    }
    ~WithGenericMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_GetBgp() {
      ::grpc::Service::MarkMethodGeneric(2);
    }
    ~WithGenericMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_WatchEvent() {
      ::grpc::Service::MarkMethodGeneric(3);
    }
    ~WithGenericMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPeer() {
      ::grpc::Service::MarkMethodGeneric(4);
    }
    ~WithGenericMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeletePeer() {
      ::grpc::Service::MarkMethodGeneric(5);
    }
    ~WithGenericMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListPeer() {
      ::grpc::Service::MarkMethodGeneric(6);
    }
    ~WithGenericMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodGeneric(7);
    }
    ~WithGenericMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ResetPeer() {
      ::grpc::Service::MarkMethodGeneric(8);
    }
    ~WithGenericMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodGeneric(9);
    }
    ~WithGenericMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_EnablePeer() {
      ::grpc::Service::MarkMethodGeneric(10);
    }
    ~WithGenericMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DisablePeer() {
      ::grpc::Service::MarkMethodGeneric(11);
    }
    ~WithGenericMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodGeneric(12);
    }
    ~WithGenericMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodGeneric(13);
    }
    ~WithGenericMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodGeneric(14);
    }
    ~WithGenericMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodGeneric(15);
    }
    ~WithGenericMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodGeneric(16);
    }
    ~WithGenericMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodGeneric(17);
    }
    ~WithGenericMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodGeneric(18);
    }
    ~WithGenericMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPath() {
      ::grpc::Service::MarkMethodGeneric(19);
    }
    ~WithGenericMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeletePath() {
      ::grpc::Service::MarkMethodGeneric(20);
    }
    ~WithGenericMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListPath() {
      ::grpc::Service::MarkMethodGeneric(21);
    }
    ~WithGenericMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPathStream : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPathStream() {
      ::grpc::Service::MarkMethodGeneric(22);
    }
    ~WithGenericMethod_AddPathStream() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPathStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* /*reader*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_GetTable() {
      ::grpc::Service::MarkMethodGeneric(23);
    }
    ~WithGenericMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddVrf() {
      ::grpc::Service::MarkMethodGeneric(24);
    }
    ~WithGenericMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodGeneric(25);
    }
    ~WithGenericMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListVrf() {
      ::grpc::Service::MarkMethodGeneric(26);
    }
    ~WithGenericMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPolicy() {
      ::grpc::Service::MarkMethodGeneric(27);
    }
    ~WithGenericMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodGeneric(28);
    }
    ~WithGenericMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListPolicy() {
      ::grpc::Service::MarkMethodGeneric(29);
    }
    ~WithGenericMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_SetPolicies() {
      ::grpc::Service::MarkMethodGeneric(30);
    }
    ~WithGenericMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodGeneric(31);
    }
    ~WithGenericMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodGeneric(32);
    }
    ~WithGenericMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodGeneric(33);
    }
    ~WithGenericMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddStatement() {
      ::grpc::Service::MarkMethodGeneric(34);
    }
    ~WithGenericMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodGeneric(35);
    }
    ~WithGenericMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListStatement() {
      ::grpc::Service::MarkMethodGeneric(36);
    }
    ~WithGenericMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodGeneric(37);
    }
    ~WithGenericMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodGeneric(38);
    }
    ~WithGenericMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodGeneric(39);
    }
    ~WithGenericMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodGeneric(40);
    }
    ~WithGenericMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddRpki() {
      ::grpc::Service::MarkMethodGeneric(41);
    }
    ~WithGenericMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodGeneric(42);
    }
    ~WithGenericMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListRpki() {
      ::grpc::Service::MarkMethodGeneric(43);
    }
    ~WithGenericMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_EnableRpki() {
      ::grpc::Service::MarkMethodGeneric(44);
    }
    ~WithGenericMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DisableRpki() {
      ::grpc::Service::MarkMethodGeneric(45);
    }
    ~WithGenericMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ResetRpki() {
      ::grpc::Service::MarkMethodGeneric(46);
    }
    ~WithGenericMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodGeneric(47);
    }
    ~WithGenericMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_EnableZebra() {
      ::grpc::Service::MarkMethodGeneric(48);
    }
    ~WithGenericMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_EnableMrt() {
      ::grpc::Service::MarkMethodGeneric(49);
    }
    ~WithGenericMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DisableMrt() {
      ::grpc::Service::MarkMethodGeneric(50);
    }
    ~WithGenericMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_AddBmp() {
      ::grpc::Service::MarkMethodGeneric(51);
    }
    ~WithGenericMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodGeneric(52);
    }
    ~WithGenericMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_ListBmp() {
      ::grpc::Service::MarkMethodGeneric(53);
    }
    ~WithGenericMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithGenericMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithGenericMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodGeneric(54);
    }
    ~WithGenericMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
  };
  template <class BaseClass>
  class WithRawMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_StartBgp() {
      ::grpc::Service::MarkMethodRaw(0);
    }
    ~WithRawMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestStartBgp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_StopBgp() {
      ::grpc::Service::MarkMethodRaw(1);
    }
    ~WithRawMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestStopBgp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_GetBgp() {
      ::grpc::Service::MarkMethodRaw(2);
    }
    ~WithRawMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestGetBgp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_WatchEvent() {
      ::grpc::Service::MarkMethodRaw(3);
    }
    ~WithRawMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestWatchEvent(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(3, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPeer() {
      ::grpc::Service::MarkMethodRaw(4);
    }
    ~WithRawMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeletePeer() {
      ::grpc::Service::MarkMethodRaw(5);
    }
    ~WithRawMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListPeer() {
      ::grpc::Service::MarkMethodRaw(6);
    }
    ~WithRawMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(6, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodRaw(7);
    }
    ~WithRawMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestUpdatePeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ResetPeer() {
      ::grpc::Service::MarkMethodRaw(8);
    }
    ~WithRawMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestResetPeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodRaw(9);
    }
    ~WithRawMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestShutdownPeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(9, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_EnablePeer() {
      ::grpc::Service::MarkMethodRaw(10);
    }
    ~WithRawMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnablePeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(10, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DisablePeer() {
      ::grpc::Service::MarkMethodRaw(11);
    }
    ~WithRawMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisablePeer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(11, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodRaw(12);
    }
    ~WithRawMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPeerGroup(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(12, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodRaw(13);
    }
    ~WithRawMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePeerGroup(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(13, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodRaw(14);
    }
    ~WithRawMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPeerGroup(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(14, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodRaw(15);
    }
    ~WithRawMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestUpdatePeerGroup(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(15, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodRaw(16);
    }
    ~WithRawMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(16, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodRaw(17);
    }
    ~WithRawMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(17, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodRaw(18);
    }
    ~WithRawMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(18, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPath() {
      ::grpc::Service::MarkMethodRaw(19);
    }
    ~WithRawMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPath(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeletePath() {
      ::grpc::Service::MarkMethodRaw(20);
    }
    ~WithRawMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePath(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListPath() {
      ::grpc::Service::MarkMethodRaw(21);
    }
    ~WithRawMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPath(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(21, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPathStream : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPathStream() {
      ::grpc::Service::MarkMethodRaw(22);
    }
    ~WithRawMethod_AddPathStream() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPathStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* /*reader*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPathStream(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncClientStreaming(22, context, reader, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_GetTable() {
      ::grpc::Service::MarkMethodRaw(23);
    }
    ~WithRawMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestGetTable(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddVrf() {
      ::grpc::Service::MarkMethodRaw(24);
    }
    ~WithRawMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddVrf(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodRaw(25);
    }
    ~WithRawMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteVrf(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListVrf() {
      ::grpc::Service::MarkMethodRaw(26);
    }
    ~WithRawMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListVrf(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(26, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPolicy() {
      ::grpc::Service::MarkMethodRaw(27);
    }
    ~WithRawMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPolicy(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodRaw(28);
    }
    ~WithRawMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePolicy(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListPolicy() {
      ::grpc::Service::MarkMethodRaw(29);
    }
    ~WithRawMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPolicy(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(29, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_SetPolicies() {
      ::grpc::Service::MarkMethodRaw(30);
    }
    ~WithRawMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetPolicies(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodRaw(31);
    }
    ~WithRawMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddDefinedSet(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodRaw(32);
    }
    ~WithRawMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteDefinedSet(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodRaw(33);
    }
    ~WithRawMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListDefinedSet(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(33, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddStatement() {
      ::grpc::Service::MarkMethodRaw(34);
    }
    ~WithRawMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddStatement(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodRaw(35);
    }
    ~WithRawMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteStatement(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListStatement() {
      ::grpc::Service::MarkMethodRaw(36);
    }
    ~WithRawMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListStatement(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(36, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodRaw(37);
    }
    ~WithRawMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddPolicyAssignment(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodRaw(38);
    }
    ~WithRawMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeletePolicyAssignment(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodRaw(39);
    }
    ~WithRawMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListPolicyAssignment(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(39, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodRaw(40);
    }
    ~WithRawMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetPolicyAssignment(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddRpki() {
      ::grpc::Service::MarkMethodRaw(41);
    }
    ~WithRawMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodRaw(42);
    }
    ~WithRawMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListRpki() {
      ::grpc::Service::MarkMethodRaw(43);
    }
    ~WithRawMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(43, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_EnableRpki() {
      ::grpc::Service::MarkMethodRaw(44);
    }
    ~WithRawMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DisableRpki() {
      ::grpc::Service::MarkMethodRaw(45);
    }
    ~WithRawMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisableRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ResetRpki() {
      ::grpc::Service::MarkMethodRaw(46);
    }
    ~WithRawMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestResetRpki(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodRaw(47);
    }
    ~WithRawMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListRpkiTable(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(47, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_EnableZebra() {
      ::grpc::Service::MarkMethodRaw(48);
    }
    ~WithRawMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableZebra(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_EnableMrt() {
      ::grpc::Service::MarkMethodRaw(49);
    }
    ~WithRawMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestEnableMrt(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DisableMrt() {
      ::grpc::Service::MarkMethodRaw(50);
    }
    ~WithRawMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDisableMrt(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_AddBmp() {
      ::grpc::Service::MarkMethodRaw(51);
    }
    ~WithRawMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestAddBmp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodRaw(52);
    }
    ~WithRawMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestDeleteBmp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(52, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_ListBmp() {
      ::grpc::Service::MarkMethodRaw(53);
    }
    ~WithRawMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestListBmp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncServerStreaming(53, context, request, writer, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodRaw(54);
    }
    ~WithRawMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    void RequestSetLogLevel(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
      ::grpc::Service::RequestAsyncUnary(54, context, request, response, new_call_cq, notification_cq, tag);
    }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_StartBgp() {
      ::grpc::Service::MarkMethodRawCallback(0,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->StartBgp(context, request, response); }));
    }
    ~WithRawCallbackMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* StartBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_StopBgp() {
      ::grpc::Service::MarkMethodRawCallback(1,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->StopBgp(context, request, response); }));
    }
    ~WithRawCallbackMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* StopBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_GetBgp() {
      ::grpc::Service::MarkMethodRawCallback(2,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetBgp(context, request, response); }));
    }
    ~WithRawCallbackMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* GetBgp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_WatchEvent() {
      ::grpc::Service::MarkMethodRawCallback(3,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->WatchEvent(context, request); }));
    }
    ~WithRawCallbackMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* WatchEvent(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPeer() {
      ::grpc::Service::MarkMethodRawCallback(4,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddPeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeletePeer() {
      ::grpc::Service::MarkMethodRawCallback(5,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeletePeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListPeer() {
      ::grpc::Service::MarkMethodRawCallback(6,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListPeer(context, request); }));
    }
    ~WithRawCallbackMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodRawCallback(7,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->UpdatePeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* UpdatePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ResetPeer() {
      ::grpc::Service::MarkMethodRawCallback(8,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ResetPeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ResetPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodRawCallback(9,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ShutdownPeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ShutdownPeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_EnablePeer() {
      ::grpc::Service::MarkMethodRawCallback(10,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->EnablePeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnablePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DisablePeer() {
      ::grpc::Service::MarkMethodRawCallback(11,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DisablePeer(context, request, response); }));
    }
    ~WithRawCallbackMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisablePeer(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodRawCallback(12,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddPeerGroup(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodRawCallback(13,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeletePeerGroup(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodRawCallback(14,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListPeerGroup(context, request); }));
    }
    ~WithRawCallbackMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListPeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodRawCallback(15,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->UpdatePeerGroup(context, request, response); }));
    }
    ~WithRawCallbackMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* UpdatePeerGroup(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodRawCallback(16,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddDynamicNeighbor(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodRawCallback(17,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListDynamicNeighbor(context, request); }));
    }
    ~WithRawCallbackMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodRawCallback(18,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteDynamicNeighbor(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteDynamicNeighbor(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPath() {
      ::grpc::Service::MarkMethodRawCallback(19,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddPath(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPath(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeletePath() {
      ::grpc::Service::MarkMethodRawCallback(20,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeletePath(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePath(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListPath() {
      ::grpc::Service::MarkMethodRawCallback(21,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListPath(context, request); }));
    }
    ~WithRawCallbackMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListPath(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPathStream : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPathStream() {
      ::grpc::Service::MarkMethodRawCallback(22,
          new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, ::grpc::ByteBuffer* response) { return this->AddPathStream(context, response); }));
    }
    ~WithRawCallbackMethod_AddPathStream() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPathStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::apipb::AddPathStreamRequest>* /*reader*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerReadReactor< ::grpc::ByteBuffer>* AddPathStream(
      ::grpc::CallbackServerContext* /*context*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_GetTable() {
      ::grpc::Service::MarkMethodRawCallback(23,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetTable(context, request, response); }));
    }
    ~WithRawCallbackMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* GetTable(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddVrf() {
      ::grpc::Service::MarkMethodRawCallback(24,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddVrf(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodRawCallback(25,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteVrf(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListVrf() {
      ::grpc::Service::MarkMethodRawCallback(26,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListVrf(context, request); }));
    }
    ~WithRawCallbackMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListVrf(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPolicy() {
      ::grpc::Service::MarkMethodRawCallback(27,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddPolicy(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodRawCallback(28,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeletePolicy(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListPolicy() {
      ::grpc::Service::MarkMethodRawCallback(29,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListPolicy(context, request); }));
    }
    ~WithRawCallbackMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListPolicy(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_SetPolicies() {
      ::grpc::Service::MarkMethodRawCallback(30,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetPolicies(context, request, response); }));
    }
    ~WithRawCallbackMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetPolicies(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodRawCallback(31,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddDefinedSet(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodRawCallback(32,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteDefinedSet(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodRawCallback(33,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListDefinedSet(context, request); }));
    }
    ~WithRawCallbackMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListDefinedSet(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddStatement() {
      ::grpc::Service::MarkMethodRawCallback(34,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddStatement(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodRawCallback(35,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteStatement(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListStatement() {
      ::grpc::Service::MarkMethodRawCallback(36,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListStatement(context, request); }));
    }
    ~WithRawCallbackMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListStatement(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodRawCallback(37,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddPolicyAssignment(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodRawCallback(38,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeletePolicyAssignment(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeletePolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodRawCallback(39,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListPolicyAssignment(context, request); }));
    }
    ~WithRawCallbackMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodRawCallback(40,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetPolicyAssignment(context, request, response); }));
    }
    ~WithRawCallbackMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetPolicyAssignment(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddRpki() {
      ::grpc::Service::MarkMethodRawCallback(41,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddRpki(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodRawCallback(42,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteRpki(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListRpki() {
      ::grpc::Service::MarkMethodRawCallback(43,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListRpki(context, request); }));
    }
    ~WithRawCallbackMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_EnableRpki() {
      ::grpc::Service::MarkMethodRawCallback(44,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->EnableRpki(context, request, response); }));
    }
    ~WithRawCallbackMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DisableRpki() {
      ::grpc::Service::MarkMethodRawCallback(45,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DisableRpki(context, request, response); }));
    }
    ~WithRawCallbackMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisableRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ResetRpki() {
      ::grpc::Service::MarkMethodRawCallback(46,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ResetRpki(context, request, response); }));
    }
    ~WithRawCallbackMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* ResetRpki(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodRawCallback(47,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListRpkiTable(context, request); }));
    }
    ~WithRawCallbackMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListRpkiTable(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_EnableZebra() {
      ::grpc::Service::MarkMethodRawCallback(48,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->EnableZebra(context, request, response); }));
    }
    ~WithRawCallbackMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableZebra(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_EnableMrt() {
      ::grpc::Service::MarkMethodRawCallback(49,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->EnableMrt(context, request, response); }));
    }
    ~WithRawCallbackMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* EnableMrt(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DisableMrt() {
      ::grpc::Service::MarkMethodRawCallback(50,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DisableMrt(context, request, response); }));
    }
    ~WithRawCallbackMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DisableMrt(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_AddBmp() {
      ::grpc::Service::MarkMethodRawCallback(51,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddBmp(context, request, response); }));
    }
    ~WithRawCallbackMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* AddBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodRawCallback(52,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteBmp(context, request, response); }));
    }
    ~WithRawCallbackMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* DeleteBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_ListBmp() {
      ::grpc::Service::MarkMethodRawCallback(53,
          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->ListBmp(context, request); }));
    }
    ~WithRawCallbackMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* ListBmp(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithRawCallbackMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithRawCallbackMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodRawCallback(54,
          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
            [this](
                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetLogLevel(context, request, response); }));
    }
    ~WithRawCallbackMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable synchronous version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    virtual ::grpc::ServerUnaryReactor* SetLogLevel(
      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_StartBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_StartBgp() {
      ::grpc::Service::MarkMethodStreamed(0,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::StartBgpRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::StartBgpRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedStartBgp(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_StartBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status StartBgp(::grpc::ServerContext* /*context*/, const ::apipb::StartBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedStartBgp(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::StartBgpRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_StopBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_StopBgp() {
      ::grpc::Service::MarkMethodStreamed(1,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::StopBgpRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::StopBgpRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedStopBgp(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_StopBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status StopBgp(::grpc::ServerContext* /*context*/, const ::apipb::StopBgpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedStopBgp(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::StopBgpRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_GetBgp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_GetBgp() {
      ::grpc::Service::MarkMethodStreamed(2,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::GetBgpRequest, ::apipb::GetBgpResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::GetBgpRequest, ::apipb::GetBgpResponse>* streamer) {
                       return this->StreamedGetBgp(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_GetBgp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status GetBgp(::grpc::ServerContext* /*context*/, const ::apipb::GetBgpRequest* /*request*/, ::apipb::GetBgpResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedGetBgp(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::GetBgpRequest,::apipb::GetBgpResponse>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddPeer() {
      ::grpc::Service::MarkMethodStreamed(4,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddPeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddPeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddPeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddPeer(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddPeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddPeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeletePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeletePeer() {
      ::grpc::Service::MarkMethodStreamed(5,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeletePeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeletePeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeletePeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeletePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeletePeer(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeletePeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeletePeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_UpdatePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_UpdatePeer() {
      ::grpc::Service::MarkMethodStreamed(7,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::UpdatePeerRequest, ::apipb::UpdatePeerResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::UpdatePeerRequest, ::apipb::UpdatePeerResponse>* streamer) {
                       return this->StreamedUpdatePeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_UpdatePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status UpdatePeer(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerRequest* /*request*/, ::apipb::UpdatePeerResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedUpdatePeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::UpdatePeerRequest,::apipb::UpdatePeerResponse>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_ResetPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_ResetPeer() {
      ::grpc::Service::MarkMethodStreamed(8,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::ResetPeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::ResetPeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedResetPeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_ResetPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ResetPeer(::grpc::ServerContext* /*context*/, const ::apipb::ResetPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedResetPeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::ResetPeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_ShutdownPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_ShutdownPeer() {
      ::grpc::Service::MarkMethodStreamed(9,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::ShutdownPeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::ShutdownPeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedShutdownPeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_ShutdownPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ShutdownPeer(::grpc::ServerContext* /*context*/, const ::apipb::ShutdownPeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedShutdownPeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::ShutdownPeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_EnablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_EnablePeer() {
      ::grpc::Service::MarkMethodStreamed(10,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::EnablePeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::EnablePeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedEnablePeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_EnablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status EnablePeer(::grpc::ServerContext* /*context*/, const ::apipb::EnablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedEnablePeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::EnablePeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DisablePeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DisablePeer() {
      ::grpc::Service::MarkMethodStreamed(11,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DisablePeerRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DisablePeerRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDisablePeer(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DisablePeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DisablePeer(::grpc::ServerContext* /*context*/, const ::apipb::DisablePeerRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDisablePeer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DisablePeerRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddPeerGroup() {
      ::grpc::Service::MarkMethodStreamed(12,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddPeerGroupRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddPeerGroupRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddPeerGroup(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::AddPeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddPeerGroup(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddPeerGroupRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeletePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeletePeerGroup() {
      ::grpc::Service::MarkMethodStreamed(13,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeletePeerGroupRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeletePeerGroupRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeletePeerGroup(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeletePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeletePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::DeletePeerGroupRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeletePeerGroup(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeletePeerGroupRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_UpdatePeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_UpdatePeerGroup() {
      ::grpc::Service::MarkMethodStreamed(15,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::UpdatePeerGroupRequest, ::apipb::UpdatePeerGroupResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::UpdatePeerGroupRequest, ::apipb::UpdatePeerGroupResponse>* streamer) {
                       return this->StreamedUpdatePeerGroup(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_UpdatePeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status UpdatePeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::UpdatePeerGroupRequest* /*request*/, ::apipb::UpdatePeerGroupResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedUpdatePeerGroup(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::UpdatePeerGroupRequest,::apipb::UpdatePeerGroupResponse>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddDynamicNeighbor() {
      ::grpc::Service::MarkMethodStreamed(16,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddDynamicNeighborRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddDynamicNeighborRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddDynamicNeighbor(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::AddDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddDynamicNeighborRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteDynamicNeighbor() {
      ::grpc::Service::MarkMethodStreamed(18,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteDynamicNeighborRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteDynamicNeighborRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteDynamicNeighbor(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDynamicNeighborRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteDynamicNeighborRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddPath() {
      ::grpc::Service::MarkMethodStreamed(19,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddPathRequest, ::apipb::AddPathResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddPathRequest, ::apipb::AddPathResponse>* streamer) {
                       return this->StreamedAddPath(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddPath(::grpc::ServerContext* /*context*/, const ::apipb::AddPathRequest* /*request*/, ::apipb::AddPathResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddPath(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddPathRequest,::apipb::AddPathResponse>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeletePath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeletePath() {
      ::grpc::Service::MarkMethodStreamed(20,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeletePathRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeletePathRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeletePath(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeletePath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeletePath(::grpc::ServerContext* /*context*/, const ::apipb::DeletePathRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeletePath(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeletePathRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_GetTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_GetTable() {
      ::grpc::Service::MarkMethodStreamed(23,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::GetTableRequest, ::apipb::GetTableResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::GetTableRequest, ::apipb::GetTableResponse>* streamer) {
                       return this->StreamedGetTable(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_GetTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status GetTable(::grpc::ServerContext* /*context*/, const ::apipb::GetTableRequest* /*request*/, ::apipb::GetTableResponse* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedGetTable(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::GetTableRequest,::apipb::GetTableResponse>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddVrf() {
      ::grpc::Service::MarkMethodStreamed(24,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddVrfRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddVrfRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddVrf(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddVrf(::grpc::ServerContext* /*context*/, const ::apipb::AddVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddVrf(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddVrfRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteVrf() {
      ::grpc::Service::MarkMethodStreamed(25,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteVrfRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteVrfRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteVrf(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteVrf(::grpc::ServerContext* /*context*/, const ::apipb::DeleteVrfRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteVrf(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteVrfRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddPolicy() {
      ::grpc::Service::MarkMethodStreamed(27,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddPolicyRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddPolicyRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddPolicy(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddPolicy(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddPolicy(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddPolicyRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeletePolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeletePolicy() {
      ::grpc::Service::MarkMethodStreamed(28,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeletePolicyRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeletePolicyRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeletePolicy(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeletePolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeletePolicy(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeletePolicy(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeletePolicyRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_SetPolicies : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_SetPolicies() {
      ::grpc::Service::MarkMethodStreamed(30,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::SetPoliciesRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::SetPoliciesRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedSetPolicies(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_SetPolicies() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status SetPolicies(::grpc::ServerContext* /*context*/, const ::apipb::SetPoliciesRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedSetPolicies(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::SetPoliciesRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddDefinedSet() {
      ::grpc::Service::MarkMethodStreamed(31,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddDefinedSetRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddDefinedSetRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddDefinedSet(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::AddDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddDefinedSet(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddDefinedSetRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteDefinedSet() {
      ::grpc::Service::MarkMethodStreamed(32,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteDefinedSetRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteDefinedSetRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteDefinedSet(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::DeleteDefinedSetRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteDefinedSet(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteDefinedSetRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddStatement() {
      ::grpc::Service::MarkMethodStreamed(34,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddStatementRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddStatementRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddStatement(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddStatement(::grpc::ServerContext* /*context*/, const ::apipb::AddStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddStatement(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddStatementRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteStatement() {
      ::grpc::Service::MarkMethodStreamed(35,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteStatementRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteStatementRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteStatement(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteStatement(::grpc::ServerContext* /*context*/, const ::apipb::DeleteStatementRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteStatement(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteStatementRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddPolicyAssignment() {
      ::grpc::Service::MarkMethodStreamed(37,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddPolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddPolicyAssignmentRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddPolicyAssignment(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::AddPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddPolicyAssignment(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddPolicyAssignmentRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeletePolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeletePolicyAssignment() {
      ::grpc::Service::MarkMethodStreamed(38,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeletePolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeletePolicyAssignmentRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeletePolicyAssignment(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeletePolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeletePolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::DeletePolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeletePolicyAssignment(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeletePolicyAssignmentRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_SetPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_SetPolicyAssignment() {
      ::grpc::Service::MarkMethodStreamed(40,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::SetPolicyAssignmentRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::SetPolicyAssignmentRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedSetPolicyAssignment(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_SetPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status SetPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::SetPolicyAssignmentRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedSetPolicyAssignment(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::SetPolicyAssignmentRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddRpki() {
      ::grpc::Service::MarkMethodStreamed(41,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddRpkiRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddRpkiRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddRpki(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddRpki(::grpc::ServerContext* /*context*/, const ::apipb::AddRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddRpki(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddRpkiRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteRpki() {
      ::grpc::Service::MarkMethodStreamed(42,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteRpkiRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteRpkiRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteRpki(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteRpki(::grpc::ServerContext* /*context*/, const ::apipb::DeleteRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteRpki(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteRpkiRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_EnableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_EnableRpki() {
      ::grpc::Service::MarkMethodStreamed(44,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::EnableRpkiRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::EnableRpkiRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedEnableRpki(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_EnableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status EnableRpki(::grpc::ServerContext* /*context*/, const ::apipb::EnableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedEnableRpki(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::EnableRpkiRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DisableRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DisableRpki() {
      ::grpc::Service::MarkMethodStreamed(45,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DisableRpkiRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DisableRpkiRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDisableRpki(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DisableRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DisableRpki(::grpc::ServerContext* /*context*/, const ::apipb::DisableRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDisableRpki(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DisableRpkiRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_ResetRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_ResetRpki() {
      ::grpc::Service::MarkMethodStreamed(46,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::ResetRpkiRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::ResetRpkiRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedResetRpki(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_ResetRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ResetRpki(::grpc::ServerContext* /*context*/, const ::apipb::ResetRpkiRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedResetRpki(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::ResetRpkiRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_EnableZebra : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_EnableZebra() {
      ::grpc::Service::MarkMethodStreamed(48,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::EnableZebraRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::EnableZebraRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedEnableZebra(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_EnableZebra() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status EnableZebra(::grpc::ServerContext* /*context*/, const ::apipb::EnableZebraRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedEnableZebra(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::EnableZebraRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_EnableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_EnableMrt() {
      ::grpc::Service::MarkMethodStreamed(49,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::EnableMrtRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::EnableMrtRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedEnableMrt(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_EnableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status EnableMrt(::grpc::ServerContext* /*context*/, const ::apipb::EnableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedEnableMrt(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::EnableMrtRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DisableMrt : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DisableMrt() {
      ::grpc::Service::MarkMethodStreamed(50,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DisableMrtRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DisableMrtRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDisableMrt(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DisableMrt() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DisableMrt(::grpc::ServerContext* /*context*/, const ::apipb::DisableMrtRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDisableMrt(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DisableMrtRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_AddBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_AddBmp() {
      ::grpc::Service::MarkMethodStreamed(51,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::AddBmpRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::AddBmpRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedAddBmp(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_AddBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status AddBmp(::grpc::ServerContext* /*context*/, const ::apipb::AddBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedAddBmp(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::AddBmpRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_DeleteBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_DeleteBmp() {
      ::grpc::Service::MarkMethodStreamed(52,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::DeleteBmpRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::DeleteBmpRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedDeleteBmp(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_DeleteBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status DeleteBmp(::grpc::ServerContext* /*context*/, const ::apipb::DeleteBmpRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedDeleteBmp(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::DeleteBmpRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  template <class BaseClass>
  class WithStreamedUnaryMethod_SetLogLevel : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithStreamedUnaryMethod_SetLogLevel() {
      ::grpc::Service::MarkMethodStreamed(54,
        new ::grpc::internal::StreamedUnaryHandler<
          ::apipb::SetLogLevelRequest, ::google::protobuf::Empty>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerUnaryStreamer<
                     ::apipb::SetLogLevelRequest, ::google::protobuf::Empty>* streamer) {
                       return this->StreamedSetLogLevel(context,
                         streamer);
                  }));
    }
    ~WithStreamedUnaryMethod_SetLogLevel() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status SetLogLevel(::grpc::ServerContext* /*context*/, const ::apipb::SetLogLevelRequest* /*request*/, ::google::protobuf::Empty* /*response*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with streamed unary
    virtual ::grpc::Status StreamedSetLogLevel(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apipb::SetLogLevelRequest,::google::protobuf::Empty>* server_unary_streamer) = 0;
  };
  typedef WithStreamedUnaryMethod_StartBgp<WithStreamedUnaryMethod_StopBgp<WithStreamedUnaryMethod_GetBgp<WithStreamedUnaryMethod_AddPeer<WithStreamedUnaryMethod_DeletePeer<WithStreamedUnaryMethod_UpdatePeer<WithStreamedUnaryMethod_ResetPeer<WithStreamedUnaryMethod_ShutdownPeer<WithStreamedUnaryMethod_EnablePeer<WithStreamedUnaryMethod_DisablePeer<WithStreamedUnaryMethod_AddPeerGroup<WithStreamedUnaryMethod_DeletePeerGroup<WithStreamedUnaryMethod_UpdatePeerGroup<WithStreamedUnaryMethod_AddDynamicNeighbor<WithStreamedUnaryMethod_DeleteDynamicNeighbor<WithStreamedUnaryMethod_AddPath<WithStreamedUnaryMethod_DeletePath<WithStreamedUnaryMethod_GetTable<WithStreamedUnaryMethod_AddVrf<WithStreamedUnaryMethod_DeleteVrf<WithStreamedUnaryMethod_AddPolicy<WithStreamedUnaryMethod_DeletePolicy<WithStreamedUnaryMethod_SetPolicies<WithStreamedUnaryMethod_AddDefinedSet<WithStreamedUnaryMethod_DeleteDefinedSet<WithStreamedUnaryMethod_AddStatement<WithStreamedUnaryMethod_DeleteStatement<WithStreamedUnaryMethod_AddPolicyAssignment<WithStreamedUnaryMethod_DeletePolicyAssignment<WithStreamedUnaryMethod_SetPolicyAssignment<WithStreamedUnaryMethod_AddRpki<WithStreamedUnaryMethod_DeleteRpki<WithStreamedUnaryMethod_EnableRpki<WithStreamedUnaryMethod_DisableRpki<WithStreamedUnaryMethod_ResetRpki<WithStreamedUnaryMethod_EnableZebra<WithStreamedUnaryMethod_EnableMrt<WithStreamedUnaryMethod_DisableMrt<WithStreamedUnaryMethod_AddBmp<WithStreamedUnaryMethod_DeleteBmp<WithStreamedUnaryMethod_SetLogLevel<Service > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService;
  template <class BaseClass>
  class WithSplitStreamingMethod_WatchEvent : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_WatchEvent() {
      ::grpc::Service::MarkMethodStreamed(3,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::WatchEventRequest, ::apipb::WatchEventResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::WatchEventRequest, ::apipb::WatchEventResponse>* streamer) {
                       return this->StreamedWatchEvent(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_WatchEvent() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status WatchEvent(::grpc::ServerContext* /*context*/, const ::apipb::WatchEventRequest* /*request*/, ::grpc::ServerWriter< ::apipb::WatchEventResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedWatchEvent(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::WatchEventRequest,::apipb::WatchEventResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListPeer : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListPeer() {
      ::grpc::Service::MarkMethodStreamed(6,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListPeerRequest, ::apipb::ListPeerResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListPeerRequest, ::apipb::ListPeerResponse>* streamer) {
                       return this->StreamedListPeer(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListPeer() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListPeer(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListPeer(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListPeerRequest,::apipb::ListPeerResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListPeerGroup : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListPeerGroup() {
      ::grpc::Service::MarkMethodStreamed(14,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListPeerGroupRequest, ::apipb::ListPeerGroupResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListPeerGroupRequest, ::apipb::ListPeerGroupResponse>* streamer) {
                       return this->StreamedListPeerGroup(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListPeerGroup() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListPeerGroup(::grpc::ServerContext* /*context*/, const ::apipb::ListPeerGroupRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPeerGroupResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListPeerGroup(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListPeerGroupRequest,::apipb::ListPeerGroupResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListDynamicNeighbor : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListDynamicNeighbor() {
      ::grpc::Service::MarkMethodStreamed(17,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListDynamicNeighborRequest, ::apipb::ListDynamicNeighborResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListDynamicNeighborRequest, ::apipb::ListDynamicNeighborResponse>* streamer) {
                       return this->StreamedListDynamicNeighbor(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListDynamicNeighbor() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListDynamicNeighbor(::grpc::ServerContext* /*context*/, const ::apipb::ListDynamicNeighborRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDynamicNeighborResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListDynamicNeighbor(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListDynamicNeighborRequest,::apipb::ListDynamicNeighborResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListPath : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListPath() {
      ::grpc::Service::MarkMethodStreamed(21,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListPathRequest, ::apipb::ListPathResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListPathRequest, ::apipb::ListPathResponse>* streamer) {
                       return this->StreamedListPath(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListPath() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListPath(::grpc::ServerContext* /*context*/, const ::apipb::ListPathRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPathResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListPath(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListPathRequest,::apipb::ListPathResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListVrf : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListVrf() {
      ::grpc::Service::MarkMethodStreamed(26,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListVrfRequest, ::apipb::ListVrfResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListVrfRequest, ::apipb::ListVrfResponse>* streamer) {
                       return this->StreamedListVrf(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListVrf() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListVrf(::grpc::ServerContext* /*context*/, const ::apipb::ListVrfRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListVrfResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListVrf(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListVrfRequest,::apipb::ListVrfResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListPolicy : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListPolicy() {
      ::grpc::Service::MarkMethodStreamed(29,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListPolicyRequest, ::apipb::ListPolicyResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListPolicyRequest, ::apipb::ListPolicyResponse>* streamer) {
                       return this->StreamedListPolicy(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListPolicy() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListPolicy(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListPolicy(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListPolicyRequest,::apipb::ListPolicyResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListDefinedSet : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListDefinedSet() {
      ::grpc::Service::MarkMethodStreamed(33,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListDefinedSetRequest, ::apipb::ListDefinedSetResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListDefinedSetRequest, ::apipb::ListDefinedSetResponse>* streamer) {
                       return this->StreamedListDefinedSet(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListDefinedSet() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListDefinedSet(::grpc::ServerContext* /*context*/, const ::apipb::ListDefinedSetRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListDefinedSetResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListDefinedSet(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListDefinedSetRequest,::apipb::ListDefinedSetResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListStatement : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListStatement() {
      ::grpc::Service::MarkMethodStreamed(36,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListStatementRequest, ::apipb::ListStatementResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListStatementRequest, ::apipb::ListStatementResponse>* streamer) {
                       return this->StreamedListStatement(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListStatement() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListStatement(::grpc::ServerContext* /*context*/, const ::apipb::ListStatementRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListStatementResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListStatement(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListStatementRequest,::apipb::ListStatementResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListPolicyAssignment : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListPolicyAssignment() {
      ::grpc::Service::MarkMethodStreamed(39,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListPolicyAssignmentRequest, ::apipb::ListPolicyAssignmentResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListPolicyAssignmentRequest, ::apipb::ListPolicyAssignmentResponse>* streamer) {
                       return this->StreamedListPolicyAssignment(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListPolicyAssignment() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListPolicyAssignment(::grpc::ServerContext* /*context*/, const ::apipb::ListPolicyAssignmentRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListPolicyAssignmentResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListPolicyAssignment(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListPolicyAssignmentRequest,::apipb::ListPolicyAssignmentResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListRpki : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListRpki() {
      ::grpc::Service::MarkMethodStreamed(43,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListRpkiRequest, ::apipb::ListRpkiResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListRpkiRequest, ::apipb::ListRpkiResponse>* streamer) {
                       return this->StreamedListRpki(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListRpki() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListRpki(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListRpki(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListRpkiRequest,::apipb::ListRpkiResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListRpkiTable : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListRpkiTable() {
      ::grpc::Service::MarkMethodStreamed(47,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListRpkiTableRequest, ::apipb::ListRpkiTableResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListRpkiTableRequest, ::apipb::ListRpkiTableResponse>* streamer) {
                       return this->StreamedListRpkiTable(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListRpkiTable() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListRpkiTable(::grpc::ServerContext* /*context*/, const ::apipb::ListRpkiTableRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListRpkiTableResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListRpkiTable(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListRpkiTableRequest,::apipb::ListRpkiTableResponse>* server_split_streamer) = 0;
  };
  template <class BaseClass>
  class WithSplitStreamingMethod_ListBmp : public BaseClass {
   private:
    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   public:
    WithSplitStreamingMethod_ListBmp() {
      ::grpc::Service::MarkMethodStreamed(53,
        new ::grpc::internal::SplitServerStreamingHandler<
          ::apipb::ListBmpRequest, ::apipb::ListBmpResponse>(
            [this](::grpc::ServerContext* context,
                   ::grpc::ServerSplitStreamer<
                     ::apipb::ListBmpRequest, ::apipb::ListBmpResponse>* streamer) {
                       return this->StreamedListBmp(context,
                         streamer);
                  }));
    }
    ~WithSplitStreamingMethod_ListBmp() override {
      BaseClassMustBeDerivedFromService(this);
    }
    // disable regular version of this method
    ::grpc::Status ListBmp(::grpc::ServerContext* /*context*/, const ::apipb::ListBmpRequest* /*request*/, ::grpc::ServerWriter< ::apipb::ListBmpResponse>* /*writer*/) override {
      abort();
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
    }
    // replace default version of method with split streamed
    virtual ::grpc::Status StreamedListBmp(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::apipb::ListBmpRequest,::apipb::ListBmpResponse>* server_split_streamer) = 0;
  };
  typedef WithSplitStreamingMethod_WatchEvent<WithSplitStreamingMethod_ListPeer<WithSplitStreamingMethod_ListPeerGroup<WithSplitStreamingMethod_ListDynamicNeighbor<WithSplitStreamingMethod_ListPath<WithSplitStreamingMethod_ListVrf<WithSplitStreamingMethod_ListPolicy<WithSplitStreamingMethod_ListDefinedSet<WithSplitStreamingMethod_ListStatement<WithSplitStreamingMethod_ListPolicyAssignment<WithSplitStreamingMethod_ListRpki<WithSplitStreamingMethod_ListRpkiTable<WithSplitStreamingMethod_ListBmp<Service > > > > > > > > > > > > > SplitStreamedService;
  typedef WithStreamedUnaryMethod_StartBgp<WithStreamedUnaryMethod_StopBgp<WithStreamedUnaryMethod_GetBgp<WithSplitStreamingMethod_WatchEvent<WithStreamedUnaryMethod_AddPeer<WithStreamedUnaryMethod_DeletePeer<WithSplitStreamingMethod_ListPeer<WithStreamedUnaryMethod_UpdatePeer<WithStreamedUnaryMethod_ResetPeer<WithStreamedUnaryMethod_ShutdownPeer<WithStreamedUnaryMethod_EnablePeer<WithStreamedUnaryMethod_DisablePeer<WithStreamedUnaryMethod_AddPeerGroup<WithStreamedUnaryMethod_DeletePeerGroup<WithSplitStreamingMethod_ListPeerGroup<WithStreamedUnaryMethod_UpdatePeerGroup<WithStreamedUnaryMethod_AddDynamicNeighbor<WithSplitStreamingMethod_ListDynamicNeighbor<WithStreamedUnaryMethod_DeleteDynamicNeighbor<WithStreamedUnaryMethod_AddPath<WithStreamedUnaryMethod_DeletePath<WithSplitStreamingMethod_ListPath<WithStreamedUnaryMethod_GetTable<WithStreamedUnaryMethod_AddVrf<WithStreamedUnaryMethod_DeleteVrf<WithSplitStreamingMethod_ListVrf<WithStreamedUnaryMethod_AddPolicy<WithStreamedUnaryMethod_DeletePolicy<WithSplitStreamingMethod_ListPolicy<WithStreamedUnaryMethod_SetPolicies<WithStreamedUnaryMethod_AddDefinedSet<WithStreamedUnaryMethod_DeleteDefinedSet<WithSplitStreamingMethod_ListDefinedSet<WithStreamedUnaryMethod_AddStatement<WithStreamedUnaryMethod_DeleteStatement<WithSplitStreamingMethod_ListStatement<WithStreamedUnaryMethod_AddPolicyAssignment<WithStreamedUnaryMethod_DeletePolicyAssignment<WithSplitStreamingMethod_ListPolicyAssignment<WithStreamedUnaryMethod_SetPolicyAssignment<WithStreamedUnaryMethod_AddRpki<WithStreamedUnaryMethod_DeleteRpki<WithSplitStreamingMethod_ListRpki<WithStreamedUnaryMethod_EnableRpki<WithStreamedUnaryMethod_DisableRpki<WithStreamedUnaryMethod_ResetRpki<WithSplitStreamingMethod_ListRpkiTable<WithStreamedUnaryMethod_EnableZebra<WithStreamedUnaryMethod_EnableMrt<WithStreamedUnaryMethod_DisableMrt<WithStreamedUnaryMethod_AddBmp<WithStreamedUnaryMethod_DeleteBmp<WithSplitStreamingMethod_ListBmp<WithStreamedUnaryMethod_SetLogLevel<Service > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService;
};

}  // namespace apipb


#include <grpcpp/ports_undef.inc>
#endif  // GRPC_gobgp_2eproto__INCLUDED
