// Generated by the gRPC C++ plugin.
// If you make any local change, they will be lost.
// source: google/pubsub/v1/pubsub.proto

#include "google/pubsub/v1/pubsub.pb.h"
#include "google/pubsub/v1/pubsub.grpc.pb.h"

#include <functional>
#include <grpcpp/support/async_stream.h>
#include <grpcpp/support/async_unary_call.h>
#include <grpcpp/impl/channel_interface.h>
#include <grpcpp/impl/client_unary_call.h>
#include <grpcpp/support/client_callback.h>
#include <grpcpp/support/message_allocator.h>
#include <grpcpp/support/method_handler.h>
#include <grpcpp/impl/rpc_service_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/sync_stream.h>
#include <grpcpp/ports_def.inc>
namespace google {
namespace pubsub {
namespace v1 {

static const char* Publisher_method_names[] = {
  "/google.pubsub.v1.Publisher/CreateTopic",
  "/google.pubsub.v1.Publisher/UpdateTopic",
  "/google.pubsub.v1.Publisher/Publish",
  "/google.pubsub.v1.Publisher/GetTopic",
  "/google.pubsub.v1.Publisher/ListTopics",
  "/google.pubsub.v1.Publisher/ListTopicSubscriptions",
  "/google.pubsub.v1.Publisher/ListTopicSnapshots",
  "/google.pubsub.v1.Publisher/DeleteTopic",
  "/google.pubsub.v1.Publisher/DetachSubscription",
};

std::unique_ptr< Publisher::Stub> Publisher::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< Publisher::Stub> stub(new Publisher::Stub(channel, options));
  return stub;
}

Publisher::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_CreateTopic_(Publisher_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_UpdateTopic_(Publisher_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Publish_(Publisher_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetTopic_(Publisher_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListTopics_(Publisher_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListTopicSubscriptions_(Publisher_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListTopicSnapshots_(Publisher_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteTopic_(Publisher_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DetachSubscription_(Publisher_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status Publisher::Stub::CreateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::Topic& request, ::google::pubsub::v1::Topic* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::Topic, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_CreateTopic_, context, request, response);
}

void Publisher::Stub::async::CreateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::Topic* request, ::google::pubsub::v1::Topic* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::Topic, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateTopic_, context, request, response, std::move(f));
}

void Publisher::Stub::async::CreateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::Topic* request, ::google::pubsub::v1::Topic* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateTopic_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::PrepareAsyncCreateTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::Topic& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Topic, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_CreateTopic_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::AsyncCreateTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::Topic& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncCreateTopicRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::UpdateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateTopicRequest& request, ::google::pubsub::v1::Topic* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::UpdateTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_UpdateTopic_, context, request, response);
}

void Publisher::Stub::async::UpdateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateTopicRequest* request, ::google::pubsub::v1::Topic* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::UpdateTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateTopic_, context, request, response, std::move(f));
}

void Publisher::Stub::async::UpdateTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateTopicRequest* request, ::google::pubsub::v1::Topic* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateTopic_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::PrepareAsyncUpdateTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateTopicRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Topic, ::google::pubsub::v1::UpdateTopicRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_UpdateTopic_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::AsyncUpdateTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateTopicRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncUpdateTopicRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::Publish(::grpc::ClientContext* context, const ::google::pubsub::v1::PublishRequest& request, ::google::pubsub::v1::PublishResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::PublishRequest, ::google::pubsub::v1::PublishResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Publish_, context, request, response);
}

void Publisher::Stub::async::Publish(::grpc::ClientContext* context, const ::google::pubsub::v1::PublishRequest* request, ::google::pubsub::v1::PublishResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::PublishRequest, ::google::pubsub::v1::PublishResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Publish_, context, request, response, std::move(f));
}

void Publisher::Stub::async::Publish(::grpc::ClientContext* context, const ::google::pubsub::v1::PublishRequest* request, ::google::pubsub::v1::PublishResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Publish_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::PublishResponse>* Publisher::Stub::PrepareAsyncPublishRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::PublishRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::PublishResponse, ::google::pubsub::v1::PublishRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Publish_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::PublishResponse>* Publisher::Stub::AsyncPublishRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::PublishRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPublishRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::GetTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::GetTopicRequest& request, ::google::pubsub::v1::Topic* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::GetTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetTopic_, context, request, response);
}

void Publisher::Stub::async::GetTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::GetTopicRequest* request, ::google::pubsub::v1::Topic* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::GetTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetTopic_, context, request, response, std::move(f));
}

void Publisher::Stub::async::GetTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::GetTopicRequest* request, ::google::pubsub::v1::Topic* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetTopic_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::PrepareAsyncGetTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetTopicRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Topic, ::google::pubsub::v1::GetTopicRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetTopic_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Topic>* Publisher::Stub::AsyncGetTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetTopicRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetTopicRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::ListTopics(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicsRequest& request, ::google::pubsub::v1::ListTopicsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ListTopicsRequest, ::google::pubsub::v1::ListTopicsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListTopics_, context, request, response);
}

void Publisher::Stub::async::ListTopics(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicsRequest* request, ::google::pubsub::v1::ListTopicsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ListTopicsRequest, ::google::pubsub::v1::ListTopicsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopics_, context, request, response, std::move(f));
}

void Publisher::Stub::async::ListTopics(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicsRequest* request, ::google::pubsub::v1::ListTopicsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopics_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicsResponse>* Publisher::Stub::PrepareAsyncListTopicsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::ListTopicsResponse, ::google::pubsub::v1::ListTopicsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListTopics_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicsResponse>* Publisher::Stub::AsyncListTopicsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncListTopicsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::ListTopicSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest& request, ::google::pubsub::v1::ListTopicSubscriptionsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ListTopicSubscriptionsRequest, ::google::pubsub::v1::ListTopicSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListTopicSubscriptions_, context, request, response);
}

void Publisher::Stub::async::ListTopicSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest* request, ::google::pubsub::v1::ListTopicSubscriptionsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ListTopicSubscriptionsRequest, ::google::pubsub::v1::ListTopicSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopicSubscriptions_, context, request, response, std::move(f));
}

void Publisher::Stub::async::ListTopicSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest* request, ::google::pubsub::v1::ListTopicSubscriptionsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopicSubscriptions_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicSubscriptionsResponse>* Publisher::Stub::PrepareAsyncListTopicSubscriptionsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::ListTopicSubscriptionsResponse, ::google::pubsub::v1::ListTopicSubscriptionsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListTopicSubscriptions_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicSubscriptionsResponse>* Publisher::Stub::AsyncListTopicSubscriptionsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncListTopicSubscriptionsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::ListTopicSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest& request, ::google::pubsub::v1::ListTopicSnapshotsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ListTopicSnapshotsRequest, ::google::pubsub::v1::ListTopicSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListTopicSnapshots_, context, request, response);
}

void Publisher::Stub::async::ListTopicSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest* request, ::google::pubsub::v1::ListTopicSnapshotsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ListTopicSnapshotsRequest, ::google::pubsub::v1::ListTopicSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopicSnapshots_, context, request, response, std::move(f));
}

void Publisher::Stub::async::ListTopicSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest* request, ::google::pubsub::v1::ListTopicSnapshotsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListTopicSnapshots_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicSnapshotsResponse>* Publisher::Stub::PrepareAsyncListTopicSnapshotsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::ListTopicSnapshotsResponse, ::google::pubsub::v1::ListTopicSnapshotsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListTopicSnapshots_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListTopicSnapshotsResponse>* Publisher::Stub::AsyncListTopicSnapshotsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncListTopicSnapshotsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::DeleteTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteTopicRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::DeleteTopicRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteTopic_, context, request, response);
}

void Publisher::Stub::async::DeleteTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteTopicRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::DeleteTopicRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteTopic_, context, request, response, std::move(f));
}

void Publisher::Stub::async::DeleteTopic(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteTopicRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteTopic_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Publisher::Stub::PrepareAsyncDeleteTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteTopicRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::DeleteTopicRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteTopic_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Publisher::Stub::AsyncDeleteTopicRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteTopicRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDeleteTopicRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Publisher::Stub::DetachSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest& request, ::google::pubsub::v1::DetachSubscriptionResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::DetachSubscriptionRequest, ::google::pubsub::v1::DetachSubscriptionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DetachSubscription_, context, request, response);
}

void Publisher::Stub::async::DetachSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest* request, ::google::pubsub::v1::DetachSubscriptionResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::DetachSubscriptionRequest, ::google::pubsub::v1::DetachSubscriptionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DetachSubscription_, context, request, response, std::move(f));
}

void Publisher::Stub::async::DetachSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest* request, ::google::pubsub::v1::DetachSubscriptionResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DetachSubscription_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::DetachSubscriptionResponse>* Publisher::Stub::PrepareAsyncDetachSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::DetachSubscriptionResponse, ::google::pubsub::v1::DetachSubscriptionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DetachSubscription_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::DetachSubscriptionResponse>* Publisher::Stub::AsyncDetachSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDetachSubscriptionRaw(context, request, cq);
  result->StartCall();
  return result;
}

Publisher::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::Topic, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::Topic* req,
             ::google::pubsub::v1::Topic* resp) {
               return service->CreateTopic(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::UpdateTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::UpdateTopicRequest* req,
             ::google::pubsub::v1::Topic* resp) {
               return service->UpdateTopic(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::PublishRequest, ::google::pubsub::v1::PublishResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::PublishRequest* req,
             ::google::pubsub::v1::PublishResponse* resp) {
               return service->Publish(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::GetTopicRequest, ::google::pubsub::v1::Topic, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::GetTopicRequest* req,
             ::google::pubsub::v1::Topic* resp) {
               return service->GetTopic(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::ListTopicsRequest, ::google::pubsub::v1::ListTopicsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ListTopicsRequest* req,
             ::google::pubsub::v1::ListTopicsResponse* resp) {
               return service->ListTopics(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[5],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::ListTopicSubscriptionsRequest, ::google::pubsub::v1::ListTopicSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ListTopicSubscriptionsRequest* req,
             ::google::pubsub::v1::ListTopicSubscriptionsResponse* resp) {
               return service->ListTopicSubscriptions(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::ListTopicSnapshotsRequest, ::google::pubsub::v1::ListTopicSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ListTopicSnapshotsRequest* req,
             ::google::pubsub::v1::ListTopicSnapshotsResponse* resp) {
               return service->ListTopicSnapshots(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::DeleteTopicRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::DeleteTopicRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->DeleteTopic(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Publisher_method_names[8],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Publisher::Service, ::google::pubsub::v1::DetachSubscriptionRequest, ::google::pubsub::v1::DetachSubscriptionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Publisher::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::DetachSubscriptionRequest* req,
             ::google::pubsub::v1::DetachSubscriptionResponse* resp) {
               return service->DetachSubscription(ctx, req, resp);
             }, this)));
}

Publisher::Service::~Service() {
}

::grpc::Status Publisher::Service::CreateTopic(::grpc::ServerContext* context, const ::google::pubsub::v1::Topic* request, ::google::pubsub::v1::Topic* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::UpdateTopic(::grpc::ServerContext* context, const ::google::pubsub::v1::UpdateTopicRequest* request, ::google::pubsub::v1::Topic* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::Publish(::grpc::ServerContext* context, const ::google::pubsub::v1::PublishRequest* request, ::google::pubsub::v1::PublishResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::GetTopic(::grpc::ServerContext* context, const ::google::pubsub::v1::GetTopicRequest* request, ::google::pubsub::v1::Topic* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::ListTopics(::grpc::ServerContext* context, const ::google::pubsub::v1::ListTopicsRequest* request, ::google::pubsub::v1::ListTopicsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::ListTopicSubscriptions(::grpc::ServerContext* context, const ::google::pubsub::v1::ListTopicSubscriptionsRequest* request, ::google::pubsub::v1::ListTopicSubscriptionsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::ListTopicSnapshots(::grpc::ServerContext* context, const ::google::pubsub::v1::ListTopicSnapshotsRequest* request, ::google::pubsub::v1::ListTopicSnapshotsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::DeleteTopic(::grpc::ServerContext* context, const ::google::pubsub::v1::DeleteTopicRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Publisher::Service::DetachSubscription(::grpc::ServerContext* context, const ::google::pubsub::v1::DetachSubscriptionRequest* request, ::google::pubsub::v1::DetachSubscriptionResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


static const char* Subscriber_method_names[] = {
  "/google.pubsub.v1.Subscriber/CreateSubscription",
  "/google.pubsub.v1.Subscriber/GetSubscription",
  "/google.pubsub.v1.Subscriber/UpdateSubscription",
  "/google.pubsub.v1.Subscriber/ListSubscriptions",
  "/google.pubsub.v1.Subscriber/DeleteSubscription",
  "/google.pubsub.v1.Subscriber/ModifyAckDeadline",
  "/google.pubsub.v1.Subscriber/Acknowledge",
  "/google.pubsub.v1.Subscriber/Pull",
  "/google.pubsub.v1.Subscriber/StreamingPull",
  "/google.pubsub.v1.Subscriber/ModifyPushConfig",
  "/google.pubsub.v1.Subscriber/GetSnapshot",
  "/google.pubsub.v1.Subscriber/ListSnapshots",
  "/google.pubsub.v1.Subscriber/CreateSnapshot",
  "/google.pubsub.v1.Subscriber/UpdateSnapshot",
  "/google.pubsub.v1.Subscriber/DeleteSnapshot",
  "/google.pubsub.v1.Subscriber/Seek",
};

std::unique_ptr< Subscriber::Stub> Subscriber::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< Subscriber::Stub> stub(new Subscriber::Stub(channel, options));
  return stub;
}

Subscriber::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_CreateSubscription_(Subscriber_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetSubscription_(Subscriber_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_UpdateSubscription_(Subscriber_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListSubscriptions_(Subscriber_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteSubscription_(Subscriber_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ModifyAckDeadline_(Subscriber_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Acknowledge_(Subscriber_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Pull_(Subscriber_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_StreamingPull_(Subscriber_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
  , rpcmethod_ModifyPushConfig_(Subscriber_method_names[9], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetSnapshot_(Subscriber_method_names[10], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ListSnapshots_(Subscriber_method_names[11], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_CreateSnapshot_(Subscriber_method_names[12], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_UpdateSnapshot_(Subscriber_method_names[13], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteSnapshot_(Subscriber_method_names[14], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Seek_(Subscriber_method_names[15], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status Subscriber::Stub::CreateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::Subscription& request, ::google::pubsub::v1::Subscription* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::Subscription, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_CreateSubscription_, context, request, response);
}

void Subscriber::Stub::async::CreateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::Subscription* request, ::google::pubsub::v1::Subscription* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::Subscription, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateSubscription_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::CreateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::Subscription* request, ::google::pubsub::v1::Subscription* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateSubscription_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::PrepareAsyncCreateSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::Subscription& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Subscription, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_CreateSubscription_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::AsyncCreateSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::Subscription& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncCreateSubscriptionRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::GetSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSubscriptionRequest& request, ::google::pubsub::v1::Subscription* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::GetSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetSubscription_, context, request, response);
}

void Subscriber::Stub::async::GetSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::GetSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSubscription_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::GetSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSubscription_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::PrepareAsyncGetSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Subscription, ::google::pubsub::v1::GetSubscriptionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetSubscription_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::AsyncGetSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetSubscriptionRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::UpdateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest& request, ::google::pubsub::v1::Subscription* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::UpdateSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_UpdateSubscription_, context, request, response);
}

void Subscriber::Stub::async::UpdateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::UpdateSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateSubscription_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::UpdateSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateSubscription_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::PrepareAsyncUpdateSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Subscription, ::google::pubsub::v1::UpdateSubscriptionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_UpdateSubscription_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Subscription>* Subscriber::Stub::AsyncUpdateSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncUpdateSubscriptionRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::ListSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest& request, ::google::pubsub::v1::ListSubscriptionsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ListSubscriptionsRequest, ::google::pubsub::v1::ListSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListSubscriptions_, context, request, response);
}

void Subscriber::Stub::async::ListSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest* request, ::google::pubsub::v1::ListSubscriptionsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ListSubscriptionsRequest, ::google::pubsub::v1::ListSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListSubscriptions_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::ListSubscriptions(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest* request, ::google::pubsub::v1::ListSubscriptionsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListSubscriptions_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListSubscriptionsResponse>* Subscriber::Stub::PrepareAsyncListSubscriptionsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::ListSubscriptionsResponse, ::google::pubsub::v1::ListSubscriptionsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListSubscriptions_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListSubscriptionsResponse>* Subscriber::Stub::AsyncListSubscriptionsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncListSubscriptionsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::DeleteSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::DeleteSubscriptionRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteSubscription_, context, request, response);
}

void Subscriber::Stub::async::DeleteSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::DeleteSubscriptionRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteSubscription_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::DeleteSubscription(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteSubscription_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::PrepareAsyncDeleteSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::DeleteSubscriptionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteSubscription_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::AsyncDeleteSubscriptionRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDeleteSubscriptionRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::ModifyAckDeadline(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ModifyAckDeadlineRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ModifyAckDeadline_, context, request, response);
}

void Subscriber::Stub::async::ModifyAckDeadline(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ModifyAckDeadlineRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ModifyAckDeadline_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::ModifyAckDeadline(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ModifyAckDeadline_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::PrepareAsyncModifyAckDeadlineRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::ModifyAckDeadlineRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ModifyAckDeadline_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::AsyncModifyAckDeadlineRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncModifyAckDeadlineRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::Acknowledge(::grpc::ClientContext* context, const ::google::pubsub::v1::AcknowledgeRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::AcknowledgeRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Acknowledge_, context, request, response);
}

void Subscriber::Stub::async::Acknowledge(::grpc::ClientContext* context, const ::google::pubsub::v1::AcknowledgeRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::AcknowledgeRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Acknowledge_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::Acknowledge(::grpc::ClientContext* context, const ::google::pubsub::v1::AcknowledgeRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Acknowledge_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::PrepareAsyncAcknowledgeRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::AcknowledgeRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::AcknowledgeRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Acknowledge_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::AsyncAcknowledgeRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::AcknowledgeRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncAcknowledgeRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::Pull(::grpc::ClientContext* context, const ::google::pubsub::v1::PullRequest& request, ::google::pubsub::v1::PullResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::PullRequest, ::google::pubsub::v1::PullResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Pull_, context, request, response);
}

void Subscriber::Stub::async::Pull(::grpc::ClientContext* context, const ::google::pubsub::v1::PullRequest* request, ::google::pubsub::v1::PullResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::PullRequest, ::google::pubsub::v1::PullResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Pull_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::Pull(::grpc::ClientContext* context, const ::google::pubsub::v1::PullRequest* request, ::google::pubsub::v1::PullResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Pull_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::PullResponse>* Subscriber::Stub::PrepareAsyncPullRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::PullRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::PullResponse, ::google::pubsub::v1::PullRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Pull_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::PullResponse>* Subscriber::Stub::AsyncPullRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::PullRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPullRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::ClientReaderWriter< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>* Subscriber::Stub::StreamingPullRaw(::grpc::ClientContext* context) {
  return ::grpc::internal::ClientReaderWriterFactory< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>::Create(channel_.get(), rpcmethod_StreamingPull_, context);
}

void Subscriber::Stub::async::StreamingPull(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::google::pubsub::v1::StreamingPullRequest,::google::pubsub::v1::StreamingPullResponse>* reactor) {
  ::grpc::internal::ClientCallbackReaderWriterFactory< ::google::pubsub::v1::StreamingPullRequest,::google::pubsub::v1::StreamingPullResponse>::Create(stub_->channel_.get(), stub_->rpcmethod_StreamingPull_, context, reactor);
}

::grpc::ClientAsyncReaderWriter< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>* Subscriber::Stub::AsyncStreamingPullRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>::Create(channel_.get(), cq, rpcmethod_StreamingPull_, context, true, tag);
}

::grpc::ClientAsyncReaderWriter< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>* Subscriber::Stub::PrepareAsyncStreamingPullRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>::Create(channel_.get(), cq, rpcmethod_StreamingPull_, context, false, nullptr);
}

::grpc::Status Subscriber::Stub::ModifyPushConfig(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ModifyPushConfigRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ModifyPushConfig_, context, request, response);
}

void Subscriber::Stub::async::ModifyPushConfig(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ModifyPushConfigRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ModifyPushConfig_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::ModifyPushConfig(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ModifyPushConfig_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::PrepareAsyncModifyPushConfigRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::ModifyPushConfigRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ModifyPushConfig_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::AsyncModifyPushConfigRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncModifyPushConfigRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::GetSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSnapshotRequest& request, ::google::pubsub::v1::Snapshot* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::GetSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetSnapshot_, context, request, response);
}

void Subscriber::Stub::async::GetSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::GetSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSnapshot_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::GetSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSnapshot_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::PrepareAsyncGetSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Snapshot, ::google::pubsub::v1::GetSnapshotRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetSnapshot_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::AsyncGetSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::GetSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetSnapshotRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::ListSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSnapshotsRequest& request, ::google::pubsub::v1::ListSnapshotsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::ListSnapshotsRequest, ::google::pubsub::v1::ListSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListSnapshots_, context, request, response);
}

void Subscriber::Stub::async::ListSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSnapshotsRequest* request, ::google::pubsub::v1::ListSnapshotsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::ListSnapshotsRequest, ::google::pubsub::v1::ListSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListSnapshots_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::ListSnapshots(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSnapshotsRequest* request, ::google::pubsub::v1::ListSnapshotsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListSnapshots_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListSnapshotsResponse>* Subscriber::Stub::PrepareAsyncListSnapshotsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSnapshotsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::ListSnapshotsResponse, ::google::pubsub::v1::ListSnapshotsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListSnapshots_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::ListSnapshotsResponse>* Subscriber::Stub::AsyncListSnapshotsRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::ListSnapshotsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncListSnapshotsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::CreateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::CreateSnapshotRequest& request, ::google::pubsub::v1::Snapshot* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::CreateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_CreateSnapshot_, context, request, response);
}

void Subscriber::Stub::async::CreateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::CreateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::CreateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateSnapshot_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::CreateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::CreateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateSnapshot_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::PrepareAsyncCreateSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::CreateSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Snapshot, ::google::pubsub::v1::CreateSnapshotRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_CreateSnapshot_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::AsyncCreateSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::CreateSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncCreateSnapshotRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::UpdateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest& request, ::google::pubsub::v1::Snapshot* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::UpdateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_UpdateSnapshot_, context, request, response);
}

void Subscriber::Stub::async::UpdateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::UpdateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateSnapshot_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::UpdateSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateSnapshot_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::PrepareAsyncUpdateSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::Snapshot, ::google::pubsub::v1::UpdateSnapshotRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_UpdateSnapshot_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::Snapshot>* Subscriber::Stub::AsyncUpdateSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncUpdateSnapshotRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::DeleteSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::DeleteSnapshotRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteSnapshot_, context, request, response);
}

void Subscriber::Stub::async::DeleteSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::DeleteSnapshotRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteSnapshot_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::DeleteSnapshot(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteSnapshot_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::PrepareAsyncDeleteSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::pubsub::v1::DeleteSnapshotRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteSnapshot_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Subscriber::Stub::AsyncDeleteSnapshotRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDeleteSnapshotRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status Subscriber::Stub::Seek(::grpc::ClientContext* context, const ::google::pubsub::v1::SeekRequest& request, ::google::pubsub::v1::SeekResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::pubsub::v1::SeekRequest, ::google::pubsub::v1::SeekResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Seek_, context, request, response);
}

void Subscriber::Stub::async::Seek(::grpc::ClientContext* context, const ::google::pubsub::v1::SeekRequest* request, ::google::pubsub::v1::SeekResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::pubsub::v1::SeekRequest, ::google::pubsub::v1::SeekResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Seek_, context, request, response, std::move(f));
}

void Subscriber::Stub::async::Seek(::grpc::ClientContext* context, const ::google::pubsub::v1::SeekRequest* request, ::google::pubsub::v1::SeekResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Seek_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::SeekResponse>* Subscriber::Stub::PrepareAsyncSeekRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::SeekRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::pubsub::v1::SeekResponse, ::google::pubsub::v1::SeekRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Seek_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::pubsub::v1::SeekResponse>* Subscriber::Stub::AsyncSeekRaw(::grpc::ClientContext* context, const ::google::pubsub::v1::SeekRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSeekRaw(context, request, cq);
  result->StartCall();
  return result;
}

Subscriber::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::Subscription, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::Subscription* req,
             ::google::pubsub::v1::Subscription* resp) {
               return service->CreateSubscription(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::GetSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::GetSubscriptionRequest* req,
             ::google::pubsub::v1::Subscription* resp) {
               return service->GetSubscription(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::UpdateSubscriptionRequest, ::google::pubsub::v1::Subscription, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::UpdateSubscriptionRequest* req,
             ::google::pubsub::v1::Subscription* resp) {
               return service->UpdateSubscription(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::ListSubscriptionsRequest, ::google::pubsub::v1::ListSubscriptionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ListSubscriptionsRequest* req,
             ::google::pubsub::v1::ListSubscriptionsResponse* resp) {
               return service->ListSubscriptions(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::DeleteSubscriptionRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::DeleteSubscriptionRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->DeleteSubscription(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[5],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::ModifyAckDeadlineRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ModifyAckDeadlineRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->ModifyAckDeadline(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::AcknowledgeRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::AcknowledgeRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->Acknowledge(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::PullRequest, ::google::pubsub::v1::PullResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::PullRequest* req,
             ::google::pubsub::v1::PullResponse* resp) {
               return service->Pull(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[8],
      ::grpc::internal::RpcMethod::BIDI_STREAMING,
      new ::grpc::internal::BidiStreamingHandler< Subscriber::Service, ::google::pubsub::v1::StreamingPullRequest, ::google::pubsub::v1::StreamingPullResponse>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             ::grpc::ServerReaderWriter<::google::pubsub::v1::StreamingPullResponse,
             ::google::pubsub::v1::StreamingPullRequest>* stream) {
               return service->StreamingPull(ctx, stream);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[9],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::ModifyPushConfigRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ModifyPushConfigRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->ModifyPushConfig(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[10],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::GetSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::GetSnapshotRequest* req,
             ::google::pubsub::v1::Snapshot* resp) {
               return service->GetSnapshot(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[11],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::ListSnapshotsRequest, ::google::pubsub::v1::ListSnapshotsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::ListSnapshotsRequest* req,
             ::google::pubsub::v1::ListSnapshotsResponse* resp) {
               return service->ListSnapshots(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[12],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::CreateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::CreateSnapshotRequest* req,
             ::google::pubsub::v1::Snapshot* resp) {
               return service->CreateSnapshot(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[13],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::UpdateSnapshotRequest, ::google::pubsub::v1::Snapshot, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::UpdateSnapshotRequest* req,
             ::google::pubsub::v1::Snapshot* resp) {
               return service->UpdateSnapshot(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[14],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::DeleteSnapshotRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::DeleteSnapshotRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->DeleteSnapshot(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      Subscriber_method_names[15],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< Subscriber::Service, ::google::pubsub::v1::SeekRequest, ::google::pubsub::v1::SeekResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](Subscriber::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::pubsub::v1::SeekRequest* req,
             ::google::pubsub::v1::SeekResponse* resp) {
               return service->Seek(ctx, req, resp);
             }, this)));
}

Subscriber::Service::~Service() {
}

::grpc::Status Subscriber::Service::CreateSubscription(::grpc::ServerContext* context, const ::google::pubsub::v1::Subscription* request, ::google::pubsub::v1::Subscription* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::GetSubscription(::grpc::ServerContext* context, const ::google::pubsub::v1::GetSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::UpdateSubscription(::grpc::ServerContext* context, const ::google::pubsub::v1::UpdateSubscriptionRequest* request, ::google::pubsub::v1::Subscription* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::ListSubscriptions(::grpc::ServerContext* context, const ::google::pubsub::v1::ListSubscriptionsRequest* request, ::google::pubsub::v1::ListSubscriptionsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::DeleteSubscription(::grpc::ServerContext* context, const ::google::pubsub::v1::DeleteSubscriptionRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::ModifyAckDeadline(::grpc::ServerContext* context, const ::google::pubsub::v1::ModifyAckDeadlineRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::Acknowledge(::grpc::ServerContext* context, const ::google::pubsub::v1::AcknowledgeRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::Pull(::grpc::ServerContext* context, const ::google::pubsub::v1::PullRequest* request, ::google::pubsub::v1::PullResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::StreamingPull(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::pubsub::v1::StreamingPullResponse, ::google::pubsub::v1::StreamingPullRequest>* stream) {
  (void) context;
  (void) stream;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::ModifyPushConfig(::grpc::ServerContext* context, const ::google::pubsub::v1::ModifyPushConfigRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::GetSnapshot(::grpc::ServerContext* context, const ::google::pubsub::v1::GetSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::ListSnapshots(::grpc::ServerContext* context, const ::google::pubsub::v1::ListSnapshotsRequest* request, ::google::pubsub::v1::ListSnapshotsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::CreateSnapshot(::grpc::ServerContext* context, const ::google::pubsub::v1::CreateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::UpdateSnapshot(::grpc::ServerContext* context, const ::google::pubsub::v1::UpdateSnapshotRequest* request, ::google::pubsub::v1::Snapshot* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::DeleteSnapshot(::grpc::ServerContext* context, const ::google::pubsub::v1::DeleteSnapshotRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status Subscriber::Service::Seek(::grpc::ServerContext* context, const ::google::pubsub::v1::SeekRequest* request, ::google::pubsub::v1::SeekResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


}  // namespace google
}  // namespace pubsub
}  // namespace v1
#include <grpcpp/ports_undef.inc>

