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

#include "keyapis/user/v1/keyapis_user_user_v1.pb.h"
#include "keyapis/user/v1/keyapis_user_user_v1.grpc.pb.h"

#include <functional>
#include <grpcpp/impl/codegen/async_stream.h>
#include <grpcpp/impl/codegen/async_unary_call.h>
#include <grpcpp/impl/codegen/channel_interface.h>
#include <grpcpp/impl/codegen/client_unary_call.h>
#include <grpcpp/impl/codegen/client_callback.h>
#include <grpcpp/impl/codegen/message_allocator.h>
#include <grpcpp/impl/codegen/method_handler.h>
#include <grpcpp/impl/codegen/rpc_service_method.h>
#include <grpcpp/impl/codegen/server_callback.h>
#include <grpcpp/impl/codegen/server_callback_handlers.h>
#include <grpcpp/impl/codegen/server_context.h>
#include <grpcpp/impl/codegen/service_type.h>
#include <grpcpp/impl/codegen/sync_stream.h>
namespace keyapis {
namespace user {
namespace v1 {

static const char* UserService_method_names[] = {
  "/keyapis.user.v1.UserService/GetUser",
  "/keyapis.user.v1.UserService/GetUserList",
  "/keyapis.user.v1.UserService/GetUserCount",
  "/keyapis.user.v1.UserService/DeleteUser",
  "/keyapis.user.v1.UserService/DeleteUserSessions",
  "/keyapis.user.v1.UserService/GetUserCode",
  "/keyapis.user.v1.UserService/PostUserCodeCreate",
  "/keyapis.user.v1.UserService/PostUser",
  "/keyapis.user.v1.UserService/PatchUser",
  "/keyapis.user.v1.UserService/PostUserCleanSsoData",
};

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

UserService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_GetUser_(UserService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetUserList_(UserService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  , rpcmethod_GetUserCount_(UserService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteUser_(UserService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DeleteUserSessions_(UserService_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetUserCode_(UserService_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_PostUserCodeCreate_(UserService_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_PostUser_(UserService_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_PatchUser_(UserService_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_PostUserCleanSsoData_(UserService_method_names[9], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status UserService::Stub::GetUser(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserRequest& request, ::keyapis::user::v1::GetUserResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::GetUserRequest, ::keyapis::user::v1::GetUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetUser_, context, request, response);
}

void UserService::Stub::async::GetUser(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserRequest* request, ::keyapis::user::v1::GetUserResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::GetUserRequest, ::keyapis::user::v1::GetUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUser_, context, request, response, std::move(f));
}

void UserService::Stub::async::GetUser(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserRequest* request, ::keyapis::user::v1::GetUserResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUser_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserResponse>* UserService::Stub::PrepareAsyncGetUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::GetUserResponse, ::keyapis::user::v1::GetUserRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetUser_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserResponse>* UserService::Stub::AsyncGetUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetUserRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::ClientReader< ::keyapis::user::v1::GetUserListResponse>* UserService::Stub::GetUserListRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserListRequest& request) {
  return ::grpc::internal::ClientReaderFactory< ::keyapis::user::v1::GetUserListResponse>::Create(channel_.get(), rpcmethod_GetUserList_, context, request);
}

void UserService::Stub::async::GetUserList(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserListRequest* request, ::grpc::ClientReadReactor< ::keyapis::user::v1::GetUserListResponse>* reactor) {
  ::grpc::internal::ClientCallbackReaderFactory< ::keyapis::user::v1::GetUserListResponse>::Create(stub_->channel_.get(), stub_->rpcmethod_GetUserList_, context, request, reactor);
}

::grpc::ClientAsyncReader< ::keyapis::user::v1::GetUserListResponse>* UserService::Stub::AsyncGetUserListRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserListRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::keyapis::user::v1::GetUserListResponse>::Create(channel_.get(), cq, rpcmethod_GetUserList_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::keyapis::user::v1::GetUserListResponse>* UserService::Stub::PrepareAsyncGetUserListRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserListRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::keyapis::user::v1::GetUserListResponse>::Create(channel_.get(), cq, rpcmethod_GetUserList_, context, request, false, nullptr);
}

::grpc::Status UserService::Stub::GetUserCount(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCountRequest& request, ::keyapis::user::v1::GetUserCountResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::GetUserCountRequest, ::keyapis::user::v1::GetUserCountResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetUserCount_, context, request, response);
}

void UserService::Stub::async::GetUserCount(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCountRequest* request, ::keyapis::user::v1::GetUserCountResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::GetUserCountRequest, ::keyapis::user::v1::GetUserCountResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUserCount_, context, request, response, std::move(f));
}

void UserService::Stub::async::GetUserCount(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCountRequest* request, ::keyapis::user::v1::GetUserCountResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUserCount_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserCountResponse>* UserService::Stub::PrepareAsyncGetUserCountRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCountRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::GetUserCountResponse, ::keyapis::user::v1::GetUserCountRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetUserCount_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserCountResponse>* UserService::Stub::AsyncGetUserCountRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCountRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetUserCountRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::DeleteUser(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserRequest& request, ::keyapis::user::v1::DeleteUserResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::DeleteUserRequest, ::keyapis::user::v1::DeleteUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteUser_, context, request, response);
}

void UserService::Stub::async::DeleteUser(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserRequest* request, ::keyapis::user::v1::DeleteUserResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::DeleteUserRequest, ::keyapis::user::v1::DeleteUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteUser_, context, request, response, std::move(f));
}

void UserService::Stub::async::DeleteUser(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserRequest* request, ::keyapis::user::v1::DeleteUserResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteUser_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::DeleteUserResponse>* UserService::Stub::PrepareAsyncDeleteUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::DeleteUserResponse, ::keyapis::user::v1::DeleteUserRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteUser_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::DeleteUserResponse>* UserService::Stub::AsyncDeleteUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDeleteUserRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::DeleteUserSessions(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest& request, ::keyapis::user::v1::DeleteUserSessionsResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::DeleteUserSessionsRequest, ::keyapis::user::v1::DeleteUserSessionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteUserSessions_, context, request, response);
}

void UserService::Stub::async::DeleteUserSessions(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest* request, ::keyapis::user::v1::DeleteUserSessionsResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::DeleteUserSessionsRequest, ::keyapis::user::v1::DeleteUserSessionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteUserSessions_, context, request, response, std::move(f));
}

void UserService::Stub::async::DeleteUserSessions(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest* request, ::keyapis::user::v1::DeleteUserSessionsResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteUserSessions_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::DeleteUserSessionsResponse>* UserService::Stub::PrepareAsyncDeleteUserSessionsRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::DeleteUserSessionsResponse, ::keyapis::user::v1::DeleteUserSessionsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteUserSessions_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::DeleteUserSessionsResponse>* UserService::Stub::AsyncDeleteUserSessionsRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDeleteUserSessionsRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::GetUserCode(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCodeRequest& request, ::keyapis::user::v1::GetUserCodeResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::GetUserCodeRequest, ::keyapis::user::v1::GetUserCodeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetUserCode_, context, request, response);
}

void UserService::Stub::async::GetUserCode(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCodeRequest* request, ::keyapis::user::v1::GetUserCodeResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::GetUserCodeRequest, ::keyapis::user::v1::GetUserCodeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUserCode_, context, request, response, std::move(f));
}

void UserService::Stub::async::GetUserCode(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCodeRequest* request, ::keyapis::user::v1::GetUserCodeResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetUserCode_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserCodeResponse>* UserService::Stub::PrepareAsyncGetUserCodeRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCodeRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::GetUserCodeResponse, ::keyapis::user::v1::GetUserCodeRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetUserCode_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::GetUserCodeResponse>* UserService::Stub::AsyncGetUserCodeRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::GetUserCodeRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetUserCodeRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::PostUserCodeCreate(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest& request, ::keyapis::user::v1::PostUserCodeCreateResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::PostUserCodeCreateRequest, ::keyapis::user::v1::PostUserCodeCreateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_PostUserCodeCreate_, context, request, response);
}

void UserService::Stub::async::PostUserCodeCreate(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest* request, ::keyapis::user::v1::PostUserCodeCreateResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::PostUserCodeCreateRequest, ::keyapis::user::v1::PostUserCodeCreateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUserCodeCreate_, context, request, response, std::move(f));
}

void UserService::Stub::async::PostUserCodeCreate(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest* request, ::keyapis::user::v1::PostUserCodeCreateResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUserCodeCreate_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserCodeCreateResponse>* UserService::Stub::PrepareAsyncPostUserCodeCreateRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::PostUserCodeCreateResponse, ::keyapis::user::v1::PostUserCodeCreateRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_PostUserCodeCreate_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserCodeCreateResponse>* UserService::Stub::AsyncPostUserCodeCreateRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPostUserCodeCreateRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::PostUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserRequest& request, ::keyapis::user::v1::PostUserResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::PostUserRequest, ::keyapis::user::v1::PostUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_PostUser_, context, request, response);
}

void UserService::Stub::async::PostUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserRequest* request, ::keyapis::user::v1::PostUserResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::PostUserRequest, ::keyapis::user::v1::PostUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUser_, context, request, response, std::move(f));
}

void UserService::Stub::async::PostUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserRequest* request, ::keyapis::user::v1::PostUserResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUser_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserResponse>* UserService::Stub::PrepareAsyncPostUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::PostUserResponse, ::keyapis::user::v1::PostUserRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_PostUser_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserResponse>* UserService::Stub::AsyncPostUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPostUserRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::PatchUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PatchUserRequest& request, ::keyapis::user::v1::PatchUserResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::PatchUserRequest, ::keyapis::user::v1::PatchUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_PatchUser_, context, request, response);
}

void UserService::Stub::async::PatchUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PatchUserRequest* request, ::keyapis::user::v1::PatchUserResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::PatchUserRequest, ::keyapis::user::v1::PatchUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PatchUser_, context, request, response, std::move(f));
}

void UserService::Stub::async::PatchUser(::grpc::ClientContext* context, const ::keyapis::user::v1::PatchUserRequest* request, ::keyapis::user::v1::PatchUserResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PatchUser_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PatchUserResponse>* UserService::Stub::PrepareAsyncPatchUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PatchUserRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::PatchUserResponse, ::keyapis::user::v1::PatchUserRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_PatchUser_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PatchUserResponse>* UserService::Stub::AsyncPatchUserRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PatchUserRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPatchUserRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status UserService::Stub::PostUserCleanSsoData(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest& request, ::keyapis::user::v1::PostUserCleanSsoDataResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::keyapis::user::v1::PostUserCleanSsoDataRequest, ::keyapis::user::v1::PostUserCleanSsoDataResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_PostUserCleanSsoData_, context, request, response);
}

void UserService::Stub::async::PostUserCleanSsoData(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest* request, ::keyapis::user::v1::PostUserCleanSsoDataResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::keyapis::user::v1::PostUserCleanSsoDataRequest, ::keyapis::user::v1::PostUserCleanSsoDataResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUserCleanSsoData_, context, request, response, std::move(f));
}

void UserService::Stub::async::PostUserCleanSsoData(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest* request, ::keyapis::user::v1::PostUserCleanSsoDataResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PostUserCleanSsoData_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserCleanSsoDataResponse>* UserService::Stub::PrepareAsyncPostUserCleanSsoDataRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::keyapis::user::v1::PostUserCleanSsoDataResponse, ::keyapis::user::v1::PostUserCleanSsoDataRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_PostUserCleanSsoData_, context, request);
}

::grpc::ClientAsyncResponseReader< ::keyapis::user::v1::PostUserCleanSsoDataResponse>* UserService::Stub::AsyncPostUserCleanSsoDataRaw(::grpc::ClientContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncPostUserCleanSsoDataRaw(context, request, cq);
  result->StartCall();
  return result;
}

UserService::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::GetUserRequest, ::keyapis::user::v1::GetUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::GetUserRequest* req,
             ::keyapis::user::v1::GetUserResponse* resp) {
               return service->GetUser(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[1],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< UserService::Service, ::keyapis::user::v1::GetUserListRequest, ::keyapis::user::v1::GetUserListResponse>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::GetUserListRequest* req,
             ::grpc::ServerWriter<::keyapis::user::v1::GetUserListResponse>* writer) {
               return service->GetUserList(ctx, req, writer);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::GetUserCountRequest, ::keyapis::user::v1::GetUserCountResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::GetUserCountRequest* req,
             ::keyapis::user::v1::GetUserCountResponse* resp) {
               return service->GetUserCount(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::DeleteUserRequest, ::keyapis::user::v1::DeleteUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::DeleteUserRequest* req,
             ::keyapis::user::v1::DeleteUserResponse* resp) {
               return service->DeleteUser(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::DeleteUserSessionsRequest, ::keyapis::user::v1::DeleteUserSessionsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::DeleteUserSessionsRequest* req,
             ::keyapis::user::v1::DeleteUserSessionsResponse* resp) {
               return service->DeleteUserSessions(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[5],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::GetUserCodeRequest, ::keyapis::user::v1::GetUserCodeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::GetUserCodeRequest* req,
             ::keyapis::user::v1::GetUserCodeResponse* resp) {
               return service->GetUserCode(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::PostUserCodeCreateRequest, ::keyapis::user::v1::PostUserCodeCreateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::PostUserCodeCreateRequest* req,
             ::keyapis::user::v1::PostUserCodeCreateResponse* resp) {
               return service->PostUserCodeCreate(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::PostUserRequest, ::keyapis::user::v1::PostUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::PostUserRequest* req,
             ::keyapis::user::v1::PostUserResponse* resp) {
               return service->PostUser(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[8],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::PatchUserRequest, ::keyapis::user::v1::PatchUserResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::PatchUserRequest* req,
             ::keyapis::user::v1::PatchUserResponse* resp) {
               return service->PatchUser(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      UserService_method_names[9],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< UserService::Service, ::keyapis::user::v1::PostUserCleanSsoDataRequest, ::keyapis::user::v1::PostUserCleanSsoDataResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](UserService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::keyapis::user::v1::PostUserCleanSsoDataRequest* req,
             ::keyapis::user::v1::PostUserCleanSsoDataResponse* resp) {
               return service->PostUserCleanSsoData(ctx, req, resp);
             }, this)));
}

UserService::Service::~Service() {
}

::grpc::Status UserService::Service::GetUser(::grpc::ServerContext* context, const ::keyapis::user::v1::GetUserRequest* request, ::keyapis::user::v1::GetUserResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::GetUserList(::grpc::ServerContext* context, const ::keyapis::user::v1::GetUserListRequest* request, ::grpc::ServerWriter< ::keyapis::user::v1::GetUserListResponse>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::GetUserCount(::grpc::ServerContext* context, const ::keyapis::user::v1::GetUserCountRequest* request, ::keyapis::user::v1::GetUserCountResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::DeleteUser(::grpc::ServerContext* context, const ::keyapis::user::v1::DeleteUserRequest* request, ::keyapis::user::v1::DeleteUserResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::DeleteUserSessions(::grpc::ServerContext* context, const ::keyapis::user::v1::DeleteUserSessionsRequest* request, ::keyapis::user::v1::DeleteUserSessionsResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::GetUserCode(::grpc::ServerContext* context, const ::keyapis::user::v1::GetUserCodeRequest* request, ::keyapis::user::v1::GetUserCodeResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::PostUserCodeCreate(::grpc::ServerContext* context, const ::keyapis::user::v1::PostUserCodeCreateRequest* request, ::keyapis::user::v1::PostUserCodeCreateResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::PostUser(::grpc::ServerContext* context, const ::keyapis::user::v1::PostUserRequest* request, ::keyapis::user::v1::PostUserResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::PatchUser(::grpc::ServerContext* context, const ::keyapis::user::v1::PatchUserRequest* request, ::keyapis::user::v1::PatchUserResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status UserService::Service::PostUserCleanSsoData(::grpc::ServerContext* context, const ::keyapis::user::v1::PostUserCleanSsoDataRequest* request, ::keyapis::user::v1::PostUserCleanSsoDataResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


}  // namespace keyapis
}  // namespace user
}  // namespace v1

