agones.dev/agones@v1.53.0/sdks/cpp/include/agones/sdk.grpc.pb.h (about)

     1  // Copyright 2024 Google LLC All Rights Reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // This code was autogenerated. Do not edit directly.
    16  // Generated by the gRPC C++ plugin.
    17  // If you make any local change, they will be lost.
    18  // source: sdk.proto
    19  // Original file comments:
    20  // Copyright 2017 Google LLC All Rights Reserved.
    21  //
    22  // Licensed under the Apache License, Version 2.0 (the "License");
    23  // you may not use this file except in compliance with the License.
    24  // You may obtain a copy of the License at
    25  //
    26  //     http://www.apache.org/licenses/LICENSE-2.0
    27  //
    28  // Unless required by applicable law or agreed to in writing, software
    29  // distributed under the License is distributed on an "AS IS" BASIS,
    30  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    31  // See the License for the specific language governing permissions and
    32  // limitations under the License.
    33  //
    34  #ifndef GRPC_sdk_2eproto__INCLUDED
    35  #define GRPC_sdk_2eproto__INCLUDED
    36  
    37  #include "sdk.pb.h"
    38  
    39  #include <functional>
    40  #include <grpcpp/generic/async_generic_service.h>
    41  #include <grpcpp/support/async_stream.h>
    42  #include <grpcpp/support/async_unary_call.h>
    43  #include <grpcpp/support/client_callback.h>
    44  #include <grpcpp/client_context.h>
    45  #include <grpcpp/completion_queue.h>
    46  #include <grpcpp/support/message_allocator.h>
    47  #include <grpcpp/support/method_handler.h>
    48  #include <grpcpp/impl/proto_utils.h>
    49  #include <grpcpp/impl/rpc_method.h>
    50  #include <grpcpp/support/server_callback.h>
    51  #include <grpcpp/impl/server_callback_handlers.h>
    52  #include <grpcpp/server_context.h>
    53  #include <grpcpp/impl/service_type.h>
    54  #include <grpcpp/support/status.h>
    55  #include <grpcpp/support/stub_options.h>
    56  #include <grpcpp/support/sync_stream.h>
    57  #include <grpcpp/ports_def.inc>
    58  
    59  namespace agones {
    60  namespace dev {
    61  namespace sdk {
    62  
    63  // SDK service to be used in the GameServer SDK to the Pod Sidecar
    64  class SDK final {
    65   public:
    66    static constexpr char const* service_full_name() {
    67      return "agones.dev.sdk.SDK";
    68    }
    69    class StubInterface {
    70     public:
    71      virtual ~StubInterface() {}
    72      // Call when the GameServer is ready
    73      virtual ::grpc::Status Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) = 0;
    74      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncReady(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    75        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncReadyRaw(context, request, cq));
    76      }
    77      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncReady(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    78        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncReadyRaw(context, request, cq));
    79      }
    80      // Call to self Allocation the GameServer
    81      virtual ::grpc::Status Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) = 0;
    82      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncAllocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    83        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncAllocateRaw(context, request, cq));
    84      }
    85      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncAllocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    86        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncAllocateRaw(context, request, cq));
    87      }
    88      // Call when the GameServer is shutting down
    89      virtual ::grpc::Status Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) = 0;
    90      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncShutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    91        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncShutdownRaw(context, request, cq));
    92      }
    93      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncShutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
    94        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncShutdownRaw(context, request, cq));
    95      }
    96      // Send a Empty every d Duration to declare that this GameSever is healthy
    97      std::unique_ptr< ::grpc::ClientWriterInterface< ::agones::dev::sdk::Empty>> Health(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response) {
    98        return std::unique_ptr< ::grpc::ClientWriterInterface< ::agones::dev::sdk::Empty>>(HealthRaw(context, response));
    99      }
   100      std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>> AsyncHealth(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq, void* tag) {
   101        return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>>(AsyncHealthRaw(context, response, cq, tag));
   102      }
   103      std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>> PrepareAsyncHealth(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq) {
   104        return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncHealthRaw(context, response, cq));
   105      }
   106      // Retrieve the current GameServer data
   107      virtual ::grpc::Status GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::GameServer* response) = 0;
   108      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>> AsyncGetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   109        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>>(AsyncGetGameServerRaw(context, request, cq));
   110      }
   111      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>> PrepareAsyncGetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   112        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>>(PrepareAsyncGetGameServerRaw(context, request, cq));
   113      }
   114      // Send GameServer details whenever the GameServer is updated
   115      std::unique_ptr< ::grpc::ClientReaderInterface< ::agones::dev::sdk::GameServer>> WatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request) {
   116        return std::unique_ptr< ::grpc::ClientReaderInterface< ::agones::dev::sdk::GameServer>>(WatchGameServerRaw(context, request));
   117      }
   118      std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>> AsyncWatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
   119        return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>>(AsyncWatchGameServerRaw(context, request, cq, tag));
   120      }
   121      std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>> PrepareAsyncWatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   122        return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>>(PrepareAsyncWatchGameServerRaw(context, request, cq));
   123      }
   124      // Apply a Label to the backing GameServer metadata
   125      virtual ::grpc::Status SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::agones::dev::sdk::Empty* response) = 0;
   126      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncSetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   127        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncSetLabelRaw(context, request, cq));
   128      }
   129      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncSetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   130        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncSetLabelRaw(context, request, cq));
   131      }
   132      // Apply a Annotation to the backing GameServer metadata
   133      virtual ::grpc::Status SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::agones::dev::sdk::Empty* response) = 0;
   134      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncSetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   135        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncSetAnnotationRaw(context, request, cq));
   136      }
   137      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncSetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   138        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncSetAnnotationRaw(context, request, cq));
   139      }
   140      // Marks the GameServer as the Reserved state for Duration
   141      virtual ::grpc::Status Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::agones::dev::sdk::Empty* response) = 0;
   142      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> AsyncReserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) {
   143        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(AsyncReserveRaw(context, request, cq));
   144      }
   145      std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>> PrepareAsyncReserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) {
   146        return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>>(PrepareAsyncReserveRaw(context, request, cq));
   147      }
   148      class async_interface {
   149       public:
   150        virtual ~async_interface() {}
   151        // Call when the GameServer is ready
   152        virtual void Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   153        virtual void Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   154        // Call to self Allocation the GameServer
   155        virtual void Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   156        virtual void Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   157        // Call when the GameServer is shutting down
   158        virtual void Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   159        virtual void Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   160        // Send a Empty every d Duration to declare that this GameSever is healthy
   161        virtual void Health(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::ClientWriteReactor< ::agones::dev::sdk::Empty>* reactor) = 0;
   162        // Retrieve the current GameServer data
   163        virtual void GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response, std::function<void(::grpc::Status)>) = 0;
   164        virtual void GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   165        // Send GameServer details whenever the GameServer is updated
   166        virtual void WatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::grpc::ClientReadReactor< ::agones::dev::sdk::GameServer>* reactor) = 0;
   167        // Apply a Label to the backing GameServer metadata
   168        virtual void SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   169        virtual void SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   170        // Apply a Annotation to the backing GameServer metadata
   171        virtual void SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   172        virtual void SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   173        // Marks the GameServer as the Reserved state for Duration
   174        virtual void Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) = 0;
   175        virtual void Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
   176      };
   177      typedef class async_interface experimental_async_interface;
   178      virtual class async_interface* async() { return nullptr; }
   179      class async_interface* experimental_async() { return async(); }
   180     private:
   181      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncReadyRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   182      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncReadyRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   183      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncAllocateRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   184      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncAllocateRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   185      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncShutdownRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   186      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncShutdownRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   187      virtual ::grpc::ClientWriterInterface< ::agones::dev::sdk::Empty>* HealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response) = 0;
   188      virtual ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>* AsyncHealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq, void* tag) = 0;
   189      virtual ::grpc::ClientAsyncWriterInterface< ::agones::dev::sdk::Empty>* PrepareAsyncHealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq) = 0;
   190      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>* AsyncGetGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   191      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::GameServer>* PrepareAsyncGetGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   192      virtual ::grpc::ClientReaderInterface< ::agones::dev::sdk::GameServer>* WatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request) = 0;
   193      virtual ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>* AsyncWatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
   194      virtual ::grpc::ClientAsyncReaderInterface< ::agones::dev::sdk::GameServer>* PrepareAsyncWatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   195      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncSetLabelRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) = 0;
   196      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncSetLabelRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) = 0;
   197      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncSetAnnotationRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) = 0;
   198      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncSetAnnotationRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) = 0;
   199      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* AsyncReserveRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) = 0;
   200      virtual ::grpc::ClientAsyncResponseReaderInterface< ::agones::dev::sdk::Empty>* PrepareAsyncReserveRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) = 0;
   201    };
   202    class Stub final : public StubInterface {
   203     public:
   204      Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
   205      ::grpc::Status Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) override;
   206      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncReady(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   207        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncReadyRaw(context, request, cq));
   208      }
   209      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncReady(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   210        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncReadyRaw(context, request, cq));
   211      }
   212      ::grpc::Status Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) override;
   213      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncAllocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   214        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncAllocateRaw(context, request, cq));
   215      }
   216      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncAllocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   217        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncAllocateRaw(context, request, cq));
   218      }
   219      ::grpc::Status Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::Empty* response) override;
   220      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncShutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   221        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncShutdownRaw(context, request, cq));
   222      }
   223      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncShutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   224        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncShutdownRaw(context, request, cq));
   225      }
   226      std::unique_ptr< ::grpc::ClientWriter< ::agones::dev::sdk::Empty>> Health(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response) {
   227        return std::unique_ptr< ::grpc::ClientWriter< ::agones::dev::sdk::Empty>>(HealthRaw(context, response));
   228      }
   229      std::unique_ptr< ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>> AsyncHealth(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq, void* tag) {
   230        return std::unique_ptr< ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>>(AsyncHealthRaw(context, response, cq, tag));
   231      }
   232      std::unique_ptr< ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>> PrepareAsyncHealth(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq) {
   233        return std::unique_ptr< ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>>(PrepareAsyncHealthRaw(context, response, cq));
   234      }
   235      ::grpc::Status GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::agones::dev::sdk::GameServer* response) override;
   236      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>> AsyncGetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   237        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>>(AsyncGetGameServerRaw(context, request, cq));
   238      }
   239      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>> PrepareAsyncGetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   240        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>>(PrepareAsyncGetGameServerRaw(context, request, cq));
   241      }
   242      std::unique_ptr< ::grpc::ClientReader< ::agones::dev::sdk::GameServer>> WatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request) {
   243        return std::unique_ptr< ::grpc::ClientReader< ::agones::dev::sdk::GameServer>>(WatchGameServerRaw(context, request));
   244      }
   245      std::unique_ptr< ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>> AsyncWatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
   246        return std::unique_ptr< ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>>(AsyncWatchGameServerRaw(context, request, cq, tag));
   247      }
   248      std::unique_ptr< ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>> PrepareAsyncWatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) {
   249        return std::unique_ptr< ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>>(PrepareAsyncWatchGameServerRaw(context, request, cq));
   250      }
   251      ::grpc::Status SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::agones::dev::sdk::Empty* response) override;
   252      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncSetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   253        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncSetLabelRaw(context, request, cq));
   254      }
   255      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncSetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   256        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncSetLabelRaw(context, request, cq));
   257      }
   258      ::grpc::Status SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::agones::dev::sdk::Empty* response) override;
   259      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncSetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   260        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncSetAnnotationRaw(context, request, cq));
   261      }
   262      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncSetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) {
   263        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncSetAnnotationRaw(context, request, cq));
   264      }
   265      ::grpc::Status Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::agones::dev::sdk::Empty* response) override;
   266      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> AsyncReserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) {
   267        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(AsyncReserveRaw(context, request, cq));
   268      }
   269      std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>> PrepareAsyncReserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) {
   270        return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>>(PrepareAsyncReserveRaw(context, request, cq));
   271      }
   272      class async final :
   273        public StubInterface::async_interface {
   274       public:
   275        void Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   276        void Ready(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   277        void Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   278        void Allocate(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   279        void Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   280        void Shutdown(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   281        void Health(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::ClientWriteReactor< ::agones::dev::sdk::Empty>* reactor) override;
   282        void GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response, std::function<void(::grpc::Status)>) override;
   283        void GetGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response, ::grpc::ClientUnaryReactor* reactor) override;
   284        void WatchGameServer(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty* request, ::grpc::ClientReadReactor< ::agones::dev::sdk::GameServer>* reactor) override;
   285        void SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   286        void SetLabel(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   287        void SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   288        void SetAnnotation(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   289        void Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response, std::function<void(::grpc::Status)>) override;
   290        void Reserve(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response, ::grpc::ClientUnaryReactor* reactor) override;
   291       private:
   292        friend class Stub;
   293        explicit async(Stub* stub): stub_(stub) { }
   294        Stub* stub() { return stub_; }
   295        Stub* stub_;
   296      };
   297      class async* async() override { return &async_stub_; }
   298  
   299     private:
   300      std::shared_ptr< ::grpc::ChannelInterface> channel_;
   301      class async async_stub_{this};
   302      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncReadyRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   303      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncReadyRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   304      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncAllocateRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   305      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncAllocateRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   306      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncShutdownRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   307      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncShutdownRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   308      ::grpc::ClientWriter< ::agones::dev::sdk::Empty>* HealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response) override;
   309      ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>* AsyncHealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq, void* tag) override;
   310      ::grpc::ClientAsyncWriter< ::agones::dev::sdk::Empty>* PrepareAsyncHealthRaw(::grpc::ClientContext* context, ::agones::dev::sdk::Empty* response, ::grpc::CompletionQueue* cq) override;
   311      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>* AsyncGetGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   312      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::GameServer>* PrepareAsyncGetGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   313      ::grpc::ClientReader< ::agones::dev::sdk::GameServer>* WatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request) override;
   314      ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>* AsyncWatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq, void* tag) override;
   315      ::grpc::ClientAsyncReader< ::agones::dev::sdk::GameServer>* PrepareAsyncWatchGameServerRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Empty& request, ::grpc::CompletionQueue* cq) override;
   316      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncSetLabelRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) override;
   317      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncSetLabelRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) override;
   318      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncSetAnnotationRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) override;
   319      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncSetAnnotationRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::KeyValue& request, ::grpc::CompletionQueue* cq) override;
   320      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* AsyncReserveRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) override;
   321      ::grpc::ClientAsyncResponseReader< ::agones::dev::sdk::Empty>* PrepareAsyncReserveRaw(::grpc::ClientContext* context, const ::agones::dev::sdk::Duration& request, ::grpc::CompletionQueue* cq) override;
   322      const ::grpc::internal::RpcMethod rpcmethod_Ready_;
   323      const ::grpc::internal::RpcMethod rpcmethod_Allocate_;
   324      const ::grpc::internal::RpcMethod rpcmethod_Shutdown_;
   325      const ::grpc::internal::RpcMethod rpcmethod_Health_;
   326      const ::grpc::internal::RpcMethod rpcmethod_GetGameServer_;
   327      const ::grpc::internal::RpcMethod rpcmethod_WatchGameServer_;
   328      const ::grpc::internal::RpcMethod rpcmethod_SetLabel_;
   329      const ::grpc::internal::RpcMethod rpcmethod_SetAnnotation_;
   330      const ::grpc::internal::RpcMethod rpcmethod_Reserve_;
   331    };
   332    static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
   333  
   334    class Service : public ::grpc::Service {
   335     public:
   336      Service();
   337      virtual ~Service();
   338      // Call when the GameServer is ready
   339      virtual ::grpc::Status Ready(::grpc::ServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response);
   340      // Call to self Allocation the GameServer
   341      virtual ::grpc::Status Allocate(::grpc::ServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response);
   342      // Call when the GameServer is shutting down
   343      virtual ::grpc::Status Shutdown(::grpc::ServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response);
   344      // Send a Empty every d Duration to declare that this GameSever is healthy
   345      virtual ::grpc::Status Health(::grpc::ServerContext* context, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* reader, ::agones::dev::sdk::Empty* response);
   346      // Retrieve the current GameServer data
   347      virtual ::grpc::Status GetGameServer(::grpc::ServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response);
   348      // Send GameServer details whenever the GameServer is updated
   349      virtual ::grpc::Status WatchGameServer(::grpc::ServerContext* context, const ::agones::dev::sdk::Empty* request, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* writer);
   350      // Apply a Label to the backing GameServer metadata
   351      virtual ::grpc::Status SetLabel(::grpc::ServerContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response);
   352      // Apply a Annotation to the backing GameServer metadata
   353      virtual ::grpc::Status SetAnnotation(::grpc::ServerContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response);
   354      // Marks the GameServer as the Reserved state for Duration
   355      virtual ::grpc::Status Reserve(::grpc::ServerContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response);
   356    };
   357    template <class BaseClass>
   358    class WithAsyncMethod_Ready : public BaseClass {
   359     private:
   360      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   361     public:
   362      WithAsyncMethod_Ready() {
   363        ::grpc::Service::MarkMethodAsync(0);
   364      }
   365      ~WithAsyncMethod_Ready() override {
   366        BaseClassMustBeDerivedFromService(this);
   367      }
   368      // disable synchronous version of this method
   369      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   370        abort();
   371        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   372      }
   373      void RequestReady(::grpc::ServerContext* context, ::agones::dev::sdk::Empty* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   374        ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
   375      }
   376    };
   377    template <class BaseClass>
   378    class WithAsyncMethod_Allocate : public BaseClass {
   379     private:
   380      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   381     public:
   382      WithAsyncMethod_Allocate() {
   383        ::grpc::Service::MarkMethodAsync(1);
   384      }
   385      ~WithAsyncMethod_Allocate() override {
   386        BaseClassMustBeDerivedFromService(this);
   387      }
   388      // disable synchronous version of this method
   389      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   390        abort();
   391        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   392      }
   393      void RequestAllocate(::grpc::ServerContext* context, ::agones::dev::sdk::Empty* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   394        ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
   395      }
   396    };
   397    template <class BaseClass>
   398    class WithAsyncMethod_Shutdown : public BaseClass {
   399     private:
   400      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   401     public:
   402      WithAsyncMethod_Shutdown() {
   403        ::grpc::Service::MarkMethodAsync(2);
   404      }
   405      ~WithAsyncMethod_Shutdown() override {
   406        BaseClassMustBeDerivedFromService(this);
   407      }
   408      // disable synchronous version of this method
   409      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   410        abort();
   411        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   412      }
   413      void RequestShutdown(::grpc::ServerContext* context, ::agones::dev::sdk::Empty* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   414        ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
   415      }
   416    };
   417    template <class BaseClass>
   418    class WithAsyncMethod_Health : public BaseClass {
   419     private:
   420      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   421     public:
   422      WithAsyncMethod_Health() {
   423        ::grpc::Service::MarkMethodAsync(3);
   424      }
   425      ~WithAsyncMethod_Health() override {
   426        BaseClassMustBeDerivedFromService(this);
   427      }
   428      // disable synchronous version of this method
   429      ::grpc::Status Health(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* /*reader*/, ::agones::dev::sdk::Empty* /*response*/) override {
   430        abort();
   431        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   432      }
   433      void RequestHealth(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   434        ::grpc::Service::RequestAsyncClientStreaming(3, context, reader, new_call_cq, notification_cq, tag);
   435      }
   436    };
   437    template <class BaseClass>
   438    class WithAsyncMethod_GetGameServer : public BaseClass {
   439     private:
   440      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   441     public:
   442      WithAsyncMethod_GetGameServer() {
   443        ::grpc::Service::MarkMethodAsync(4);
   444      }
   445      ~WithAsyncMethod_GetGameServer() override {
   446        BaseClassMustBeDerivedFromService(this);
   447      }
   448      // disable synchronous version of this method
   449      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
   450        abort();
   451        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   452      }
   453      void RequestGetGameServer(::grpc::ServerContext* context, ::agones::dev::sdk::Empty* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::GameServer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   454        ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
   455      }
   456    };
   457    template <class BaseClass>
   458    class WithAsyncMethod_WatchGameServer : public BaseClass {
   459     private:
   460      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   461     public:
   462      WithAsyncMethod_WatchGameServer() {
   463        ::grpc::Service::MarkMethodAsync(5);
   464      }
   465      ~WithAsyncMethod_WatchGameServer() override {
   466        BaseClassMustBeDerivedFromService(this);
   467      }
   468      // disable synchronous version of this method
   469      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
   470        abort();
   471        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   472      }
   473      void RequestWatchGameServer(::grpc::ServerContext* context, ::agones::dev::sdk::Empty* request, ::grpc::ServerAsyncWriter< ::agones::dev::sdk::GameServer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   474        ::grpc::Service::RequestAsyncServerStreaming(5, context, request, writer, new_call_cq, notification_cq, tag);
   475      }
   476    };
   477    template <class BaseClass>
   478    class WithAsyncMethod_SetLabel : public BaseClass {
   479     private:
   480      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   481     public:
   482      WithAsyncMethod_SetLabel() {
   483        ::grpc::Service::MarkMethodAsync(6);
   484      }
   485      ~WithAsyncMethod_SetLabel() override {
   486        BaseClassMustBeDerivedFromService(this);
   487      }
   488      // disable synchronous version of this method
   489      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   490        abort();
   491        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   492      }
   493      void RequestSetLabel(::grpc::ServerContext* context, ::agones::dev::sdk::KeyValue* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   494        ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
   495      }
   496    };
   497    template <class BaseClass>
   498    class WithAsyncMethod_SetAnnotation : public BaseClass {
   499     private:
   500      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   501     public:
   502      WithAsyncMethod_SetAnnotation() {
   503        ::grpc::Service::MarkMethodAsync(7);
   504      }
   505      ~WithAsyncMethod_SetAnnotation() override {
   506        BaseClassMustBeDerivedFromService(this);
   507      }
   508      // disable synchronous version of this method
   509      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   510        abort();
   511        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   512      }
   513      void RequestSetAnnotation(::grpc::ServerContext* context, ::agones::dev::sdk::KeyValue* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   514        ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
   515      }
   516    };
   517    template <class BaseClass>
   518    class WithAsyncMethod_Reserve : public BaseClass {
   519     private:
   520      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   521     public:
   522      WithAsyncMethod_Reserve() {
   523        ::grpc::Service::MarkMethodAsync(8);
   524      }
   525      ~WithAsyncMethod_Reserve() override {
   526        BaseClassMustBeDerivedFromService(this);
   527      }
   528      // disable synchronous version of this method
   529      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   530        abort();
   531        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   532      }
   533      void RequestReserve(::grpc::ServerContext* context, ::agones::dev::sdk::Duration* request, ::grpc::ServerAsyncResponseWriter< ::agones::dev::sdk::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   534        ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
   535      }
   536    };
   537    typedef WithAsyncMethod_Ready<WithAsyncMethod_Allocate<WithAsyncMethod_Shutdown<WithAsyncMethod_Health<WithAsyncMethod_GetGameServer<WithAsyncMethod_WatchGameServer<WithAsyncMethod_SetLabel<WithAsyncMethod_SetAnnotation<WithAsyncMethod_Reserve<Service > > > > > > > > > AsyncService;
   538    template <class BaseClass>
   539    class WithCallbackMethod_Ready : public BaseClass {
   540     private:
   541      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   542     public:
   543      WithCallbackMethod_Ready() {
   544        ::grpc::Service::MarkMethodCallback(0,
   545            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
   546              [this](
   547                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response) { return this->Ready(context, request, response); }));}
   548      void SetMessageAllocatorFor_Ready(
   549          ::grpc::MessageAllocator< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* allocator) {
   550        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);
   551        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>*>(handler)
   552                ->SetMessageAllocator(allocator);
   553      }
   554      ~WithCallbackMethod_Ready() override {
   555        BaseClassMustBeDerivedFromService(this);
   556      }
   557      // disable synchronous version of this method
   558      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   559        abort();
   560        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   561      }
   562      virtual ::grpc::ServerUnaryReactor* Ready(
   563        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   564    };
   565    template <class BaseClass>
   566    class WithCallbackMethod_Allocate : public BaseClass {
   567     private:
   568      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   569     public:
   570      WithCallbackMethod_Allocate() {
   571        ::grpc::Service::MarkMethodCallback(1,
   572            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
   573              [this](
   574                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response) { return this->Allocate(context, request, response); }));}
   575      void SetMessageAllocatorFor_Allocate(
   576          ::grpc::MessageAllocator< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* allocator) {
   577        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1);
   578        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>*>(handler)
   579                ->SetMessageAllocator(allocator);
   580      }
   581      ~WithCallbackMethod_Allocate() override {
   582        BaseClassMustBeDerivedFromService(this);
   583      }
   584      // disable synchronous version of this method
   585      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   586        abort();
   587        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   588      }
   589      virtual ::grpc::ServerUnaryReactor* Allocate(
   590        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   591    };
   592    template <class BaseClass>
   593    class WithCallbackMethod_Shutdown : public BaseClass {
   594     private:
   595      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   596     public:
   597      WithCallbackMethod_Shutdown() {
   598        ::grpc::Service::MarkMethodCallback(2,
   599            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
   600              [this](
   601                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::Empty* response) { return this->Shutdown(context, request, response); }));}
   602      void SetMessageAllocatorFor_Shutdown(
   603          ::grpc::MessageAllocator< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* allocator) {
   604        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2);
   605        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>*>(handler)
   606                ->SetMessageAllocator(allocator);
   607      }
   608      ~WithCallbackMethod_Shutdown() override {
   609        BaseClassMustBeDerivedFromService(this);
   610      }
   611      // disable synchronous version of this method
   612      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   613        abort();
   614        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   615      }
   616      virtual ::grpc::ServerUnaryReactor* Shutdown(
   617        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   618    };
   619    template <class BaseClass>
   620    class WithCallbackMethod_Health : public BaseClass {
   621     private:
   622      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   623     public:
   624      WithCallbackMethod_Health() {
   625        ::grpc::Service::MarkMethodCallback(3,
   626            new ::grpc::internal::CallbackClientStreamingHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
   627              [this](
   628                     ::grpc::CallbackServerContext* context, ::agones::dev::sdk::Empty* response) { return this->Health(context, response); }));
   629      }
   630      ~WithCallbackMethod_Health() override {
   631        BaseClassMustBeDerivedFromService(this);
   632      }
   633      // disable synchronous version of this method
   634      ::grpc::Status Health(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* /*reader*/, ::agones::dev::sdk::Empty* /*response*/) override {
   635        abort();
   636        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   637      }
   638      virtual ::grpc::ServerReadReactor< ::agones::dev::sdk::Empty>* Health(
   639        ::grpc::CallbackServerContext* /*context*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   640    };
   641    template <class BaseClass>
   642    class WithCallbackMethod_GetGameServer : public BaseClass {
   643     private:
   644      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   645     public:
   646      WithCallbackMethod_GetGameServer() {
   647        ::grpc::Service::MarkMethodCallback(4,
   648            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>(
   649              [this](
   650                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Empty* request, ::agones::dev::sdk::GameServer* response) { return this->GetGameServer(context, request, response); }));}
   651      void SetMessageAllocatorFor_GetGameServer(
   652          ::grpc::MessageAllocator< ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>* allocator) {
   653        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(4);
   654        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>*>(handler)
   655                ->SetMessageAllocator(allocator);
   656      }
   657      ~WithCallbackMethod_GetGameServer() override {
   658        BaseClassMustBeDerivedFromService(this);
   659      }
   660      // disable synchronous version of this method
   661      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
   662        abort();
   663        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   664      }
   665      virtual ::grpc::ServerUnaryReactor* GetGameServer(
   666        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/)  { return nullptr; }
   667    };
   668    template <class BaseClass>
   669    class WithCallbackMethod_WatchGameServer : public BaseClass {
   670     private:
   671      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   672     public:
   673      WithCallbackMethod_WatchGameServer() {
   674        ::grpc::Service::MarkMethodCallback(5,
   675            new ::grpc::internal::CallbackServerStreamingHandler< ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>(
   676              [this](
   677                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Empty* request) { return this->WatchGameServer(context, request); }));
   678      }
   679      ~WithCallbackMethod_WatchGameServer() override {
   680        BaseClassMustBeDerivedFromService(this);
   681      }
   682      // disable synchronous version of this method
   683      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
   684        abort();
   685        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   686      }
   687      virtual ::grpc::ServerWriteReactor< ::agones::dev::sdk::GameServer>* WatchGameServer(
   688        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/)  { return nullptr; }
   689    };
   690    template <class BaseClass>
   691    class WithCallbackMethod_SetLabel : public BaseClass {
   692     private:
   693      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   694     public:
   695      WithCallbackMethod_SetLabel() {
   696        ::grpc::Service::MarkMethodCallback(6,
   697            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>(
   698              [this](
   699                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response) { return this->SetLabel(context, request, response); }));}
   700      void SetMessageAllocatorFor_SetLabel(
   701          ::grpc::MessageAllocator< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>* allocator) {
   702        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(6);
   703        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>*>(handler)
   704                ->SetMessageAllocator(allocator);
   705      }
   706      ~WithCallbackMethod_SetLabel() override {
   707        BaseClassMustBeDerivedFromService(this);
   708      }
   709      // disable synchronous version of this method
   710      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   711        abort();
   712        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   713      }
   714      virtual ::grpc::ServerUnaryReactor* SetLabel(
   715        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   716    };
   717    template <class BaseClass>
   718    class WithCallbackMethod_SetAnnotation : public BaseClass {
   719     private:
   720      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   721     public:
   722      WithCallbackMethod_SetAnnotation() {
   723        ::grpc::Service::MarkMethodCallback(7,
   724            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>(
   725              [this](
   726                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::KeyValue* request, ::agones::dev::sdk::Empty* response) { return this->SetAnnotation(context, request, response); }));}
   727      void SetMessageAllocatorFor_SetAnnotation(
   728          ::grpc::MessageAllocator< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>* allocator) {
   729        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(7);
   730        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>*>(handler)
   731                ->SetMessageAllocator(allocator);
   732      }
   733      ~WithCallbackMethod_SetAnnotation() override {
   734        BaseClassMustBeDerivedFromService(this);
   735      }
   736      // disable synchronous version of this method
   737      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   738        abort();
   739        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   740      }
   741      virtual ::grpc::ServerUnaryReactor* SetAnnotation(
   742        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   743    };
   744    template <class BaseClass>
   745    class WithCallbackMethod_Reserve : public BaseClass {
   746     private:
   747      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   748     public:
   749      WithCallbackMethod_Reserve() {
   750        ::grpc::Service::MarkMethodCallback(8,
   751            new ::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Duration, ::agones::dev::sdk::Empty>(
   752              [this](
   753                     ::grpc::CallbackServerContext* context, const ::agones::dev::sdk::Duration* request, ::agones::dev::sdk::Empty* response) { return this->Reserve(context, request, response); }));}
   754      void SetMessageAllocatorFor_Reserve(
   755          ::grpc::MessageAllocator< ::agones::dev::sdk::Duration, ::agones::dev::sdk::Empty>* allocator) {
   756        ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(8);
   757        static_cast<::grpc::internal::CallbackUnaryHandler< ::agones::dev::sdk::Duration, ::agones::dev::sdk::Empty>*>(handler)
   758                ->SetMessageAllocator(allocator);
   759      }
   760      ~WithCallbackMethod_Reserve() override {
   761        BaseClassMustBeDerivedFromService(this);
   762      }
   763      // disable synchronous version of this method
   764      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   765        abort();
   766        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   767      }
   768      virtual ::grpc::ServerUnaryReactor* Reserve(
   769        ::grpc::CallbackServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/)  { return nullptr; }
   770    };
   771    typedef WithCallbackMethod_Ready<WithCallbackMethod_Allocate<WithCallbackMethod_Shutdown<WithCallbackMethod_Health<WithCallbackMethod_GetGameServer<WithCallbackMethod_WatchGameServer<WithCallbackMethod_SetLabel<WithCallbackMethod_SetAnnotation<WithCallbackMethod_Reserve<Service > > > > > > > > > CallbackService;
   772    typedef CallbackService ExperimentalCallbackService;
   773    template <class BaseClass>
   774    class WithGenericMethod_Ready : public BaseClass {
   775     private:
   776      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   777     public:
   778      WithGenericMethod_Ready() {
   779        ::grpc::Service::MarkMethodGeneric(0);
   780      }
   781      ~WithGenericMethod_Ready() override {
   782        BaseClassMustBeDerivedFromService(this);
   783      }
   784      // disable synchronous version of this method
   785      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   786        abort();
   787        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   788      }
   789    };
   790    template <class BaseClass>
   791    class WithGenericMethod_Allocate : public BaseClass {
   792     private:
   793      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   794     public:
   795      WithGenericMethod_Allocate() {
   796        ::grpc::Service::MarkMethodGeneric(1);
   797      }
   798      ~WithGenericMethod_Allocate() override {
   799        BaseClassMustBeDerivedFromService(this);
   800      }
   801      // disable synchronous version of this method
   802      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   803        abort();
   804        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   805      }
   806    };
   807    template <class BaseClass>
   808    class WithGenericMethod_Shutdown : public BaseClass {
   809     private:
   810      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   811     public:
   812      WithGenericMethod_Shutdown() {
   813        ::grpc::Service::MarkMethodGeneric(2);
   814      }
   815      ~WithGenericMethod_Shutdown() override {
   816        BaseClassMustBeDerivedFromService(this);
   817      }
   818      // disable synchronous version of this method
   819      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   820        abort();
   821        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   822      }
   823    };
   824    template <class BaseClass>
   825    class WithGenericMethod_Health : public BaseClass {
   826     private:
   827      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   828     public:
   829      WithGenericMethod_Health() {
   830        ::grpc::Service::MarkMethodGeneric(3);
   831      }
   832      ~WithGenericMethod_Health() override {
   833        BaseClassMustBeDerivedFromService(this);
   834      }
   835      // disable synchronous version of this method
   836      ::grpc::Status Health(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* /*reader*/, ::agones::dev::sdk::Empty* /*response*/) override {
   837        abort();
   838        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   839      }
   840    };
   841    template <class BaseClass>
   842    class WithGenericMethod_GetGameServer : public BaseClass {
   843     private:
   844      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   845     public:
   846      WithGenericMethod_GetGameServer() {
   847        ::grpc::Service::MarkMethodGeneric(4);
   848      }
   849      ~WithGenericMethod_GetGameServer() override {
   850        BaseClassMustBeDerivedFromService(this);
   851      }
   852      // disable synchronous version of this method
   853      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
   854        abort();
   855        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   856      }
   857    };
   858    template <class BaseClass>
   859    class WithGenericMethod_WatchGameServer : public BaseClass {
   860     private:
   861      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   862     public:
   863      WithGenericMethod_WatchGameServer() {
   864        ::grpc::Service::MarkMethodGeneric(5);
   865      }
   866      ~WithGenericMethod_WatchGameServer() override {
   867        BaseClassMustBeDerivedFromService(this);
   868      }
   869      // disable synchronous version of this method
   870      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
   871        abort();
   872        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   873      }
   874    };
   875    template <class BaseClass>
   876    class WithGenericMethod_SetLabel : public BaseClass {
   877     private:
   878      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   879     public:
   880      WithGenericMethod_SetLabel() {
   881        ::grpc::Service::MarkMethodGeneric(6);
   882      }
   883      ~WithGenericMethod_SetLabel() override {
   884        BaseClassMustBeDerivedFromService(this);
   885      }
   886      // disable synchronous version of this method
   887      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   888        abort();
   889        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   890      }
   891    };
   892    template <class BaseClass>
   893    class WithGenericMethod_SetAnnotation : public BaseClass {
   894     private:
   895      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   896     public:
   897      WithGenericMethod_SetAnnotation() {
   898        ::grpc::Service::MarkMethodGeneric(7);
   899      }
   900      ~WithGenericMethod_SetAnnotation() override {
   901        BaseClassMustBeDerivedFromService(this);
   902      }
   903      // disable synchronous version of this method
   904      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   905        abort();
   906        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   907      }
   908    };
   909    template <class BaseClass>
   910    class WithGenericMethod_Reserve : public BaseClass {
   911     private:
   912      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   913     public:
   914      WithGenericMethod_Reserve() {
   915        ::grpc::Service::MarkMethodGeneric(8);
   916      }
   917      ~WithGenericMethod_Reserve() override {
   918        BaseClassMustBeDerivedFromService(this);
   919      }
   920      // disable synchronous version of this method
   921      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   922        abort();
   923        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   924      }
   925    };
   926    template <class BaseClass>
   927    class WithRawMethod_Ready : public BaseClass {
   928     private:
   929      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   930     public:
   931      WithRawMethod_Ready() {
   932        ::grpc::Service::MarkMethodRaw(0);
   933      }
   934      ~WithRawMethod_Ready() override {
   935        BaseClassMustBeDerivedFromService(this);
   936      }
   937      // disable synchronous version of this method
   938      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   939        abort();
   940        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   941      }
   942      void RequestReady(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   943        ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
   944      }
   945    };
   946    template <class BaseClass>
   947    class WithRawMethod_Allocate : public BaseClass {
   948     private:
   949      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   950     public:
   951      WithRawMethod_Allocate() {
   952        ::grpc::Service::MarkMethodRaw(1);
   953      }
   954      ~WithRawMethod_Allocate() override {
   955        BaseClassMustBeDerivedFromService(this);
   956      }
   957      // disable synchronous version of this method
   958      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   959        abort();
   960        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   961      }
   962      void RequestAllocate(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   963        ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
   964      }
   965    };
   966    template <class BaseClass>
   967    class WithRawMethod_Shutdown : public BaseClass {
   968     private:
   969      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   970     public:
   971      WithRawMethod_Shutdown() {
   972        ::grpc::Service::MarkMethodRaw(2);
   973      }
   974      ~WithRawMethod_Shutdown() override {
   975        BaseClassMustBeDerivedFromService(this);
   976      }
   977      // disable synchronous version of this method
   978      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
   979        abort();
   980        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
   981      }
   982      void RequestShutdown(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
   983        ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
   984      }
   985    };
   986    template <class BaseClass>
   987    class WithRawMethod_Health : public BaseClass {
   988     private:
   989      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
   990     public:
   991      WithRawMethod_Health() {
   992        ::grpc::Service::MarkMethodRaw(3);
   993      }
   994      ~WithRawMethod_Health() override {
   995        BaseClassMustBeDerivedFromService(this);
   996      }
   997      // disable synchronous version of this method
   998      ::grpc::Status Health(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* /*reader*/, ::agones::dev::sdk::Empty* /*response*/) override {
   999        abort();
  1000        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1001      }
  1002      void RequestHealth(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1003        ::grpc::Service::RequestAsyncClientStreaming(3, context, reader, new_call_cq, notification_cq, tag);
  1004      }
  1005    };
  1006    template <class BaseClass>
  1007    class WithRawMethod_GetGameServer : public BaseClass {
  1008     private:
  1009      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1010     public:
  1011      WithRawMethod_GetGameServer() {
  1012        ::grpc::Service::MarkMethodRaw(4);
  1013      }
  1014      ~WithRawMethod_GetGameServer() override {
  1015        BaseClassMustBeDerivedFromService(this);
  1016      }
  1017      // disable synchronous version of this method
  1018      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
  1019        abort();
  1020        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1021      }
  1022      void RequestGetGameServer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1023        ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
  1024      }
  1025    };
  1026    template <class BaseClass>
  1027    class WithRawMethod_WatchGameServer : public BaseClass {
  1028     private:
  1029      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1030     public:
  1031      WithRawMethod_WatchGameServer() {
  1032        ::grpc::Service::MarkMethodRaw(5);
  1033      }
  1034      ~WithRawMethod_WatchGameServer() override {
  1035        BaseClassMustBeDerivedFromService(this);
  1036      }
  1037      // disable synchronous version of this method
  1038      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
  1039        abort();
  1040        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1041      }
  1042      void RequestWatchGameServer(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1043        ::grpc::Service::RequestAsyncServerStreaming(5, context, request, writer, new_call_cq, notification_cq, tag);
  1044      }
  1045    };
  1046    template <class BaseClass>
  1047    class WithRawMethod_SetLabel : public BaseClass {
  1048     private:
  1049      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1050     public:
  1051      WithRawMethod_SetLabel() {
  1052        ::grpc::Service::MarkMethodRaw(6);
  1053      }
  1054      ~WithRawMethod_SetLabel() override {
  1055        BaseClassMustBeDerivedFromService(this);
  1056      }
  1057      // disable synchronous version of this method
  1058      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1059        abort();
  1060        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1061      }
  1062      void RequestSetLabel(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1063        ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
  1064      }
  1065    };
  1066    template <class BaseClass>
  1067    class WithRawMethod_SetAnnotation : public BaseClass {
  1068     private:
  1069      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1070     public:
  1071      WithRawMethod_SetAnnotation() {
  1072        ::grpc::Service::MarkMethodRaw(7);
  1073      }
  1074      ~WithRawMethod_SetAnnotation() override {
  1075        BaseClassMustBeDerivedFromService(this);
  1076      }
  1077      // disable synchronous version of this method
  1078      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1079        abort();
  1080        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1081      }
  1082      void RequestSetAnnotation(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1083        ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
  1084      }
  1085    };
  1086    template <class BaseClass>
  1087    class WithRawMethod_Reserve : public BaseClass {
  1088     private:
  1089      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1090     public:
  1091      WithRawMethod_Reserve() {
  1092        ::grpc::Service::MarkMethodRaw(8);
  1093      }
  1094      ~WithRawMethod_Reserve() override {
  1095        BaseClassMustBeDerivedFromService(this);
  1096      }
  1097      // disable synchronous version of this method
  1098      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1099        abort();
  1100        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1101      }
  1102      void RequestReserve(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
  1103        ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
  1104      }
  1105    };
  1106    template <class BaseClass>
  1107    class WithRawCallbackMethod_Ready : public BaseClass {
  1108     private:
  1109      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1110     public:
  1111      WithRawCallbackMethod_Ready() {
  1112        ::grpc::Service::MarkMethodRawCallback(0,
  1113            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1114              [this](
  1115                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Ready(context, request, response); }));
  1116      }
  1117      ~WithRawCallbackMethod_Ready() override {
  1118        BaseClassMustBeDerivedFromService(this);
  1119      }
  1120      // disable synchronous version of this method
  1121      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1122        abort();
  1123        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1124      }
  1125      virtual ::grpc::ServerUnaryReactor* Ready(
  1126        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1127    };
  1128    template <class BaseClass>
  1129    class WithRawCallbackMethod_Allocate : public BaseClass {
  1130     private:
  1131      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1132     public:
  1133      WithRawCallbackMethod_Allocate() {
  1134        ::grpc::Service::MarkMethodRawCallback(1,
  1135            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1136              [this](
  1137                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Allocate(context, request, response); }));
  1138      }
  1139      ~WithRawCallbackMethod_Allocate() override {
  1140        BaseClassMustBeDerivedFromService(this);
  1141      }
  1142      // disable synchronous version of this method
  1143      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1144        abort();
  1145        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1146      }
  1147      virtual ::grpc::ServerUnaryReactor* Allocate(
  1148        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1149    };
  1150    template <class BaseClass>
  1151    class WithRawCallbackMethod_Shutdown : public BaseClass {
  1152     private:
  1153      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1154     public:
  1155      WithRawCallbackMethod_Shutdown() {
  1156        ::grpc::Service::MarkMethodRawCallback(2,
  1157            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1158              [this](
  1159                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Shutdown(context, request, response); }));
  1160      }
  1161      ~WithRawCallbackMethod_Shutdown() override {
  1162        BaseClassMustBeDerivedFromService(this);
  1163      }
  1164      // disable synchronous version of this method
  1165      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1166        abort();
  1167        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1168      }
  1169      virtual ::grpc::ServerUnaryReactor* Shutdown(
  1170        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1171    };
  1172    template <class BaseClass>
  1173    class WithRawCallbackMethod_Health : public BaseClass {
  1174     private:
  1175      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1176     public:
  1177      WithRawCallbackMethod_Health() {
  1178        ::grpc::Service::MarkMethodRawCallback(3,
  1179            new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1180              [this](
  1181                     ::grpc::CallbackServerContext* context, ::grpc::ByteBuffer* response) { return this->Health(context, response); }));
  1182      }
  1183      ~WithRawCallbackMethod_Health() override {
  1184        BaseClassMustBeDerivedFromService(this);
  1185      }
  1186      // disable synchronous version of this method
  1187      ::grpc::Status Health(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::agones::dev::sdk::Empty>* /*reader*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1188        abort();
  1189        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1190      }
  1191      virtual ::grpc::ServerReadReactor< ::grpc::ByteBuffer>* Health(
  1192        ::grpc::CallbackServerContext* /*context*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1193    };
  1194    template <class BaseClass>
  1195    class WithRawCallbackMethod_GetGameServer : public BaseClass {
  1196     private:
  1197      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1198     public:
  1199      WithRawCallbackMethod_GetGameServer() {
  1200        ::grpc::Service::MarkMethodRawCallback(4,
  1201            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1202              [this](
  1203                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetGameServer(context, request, response); }));
  1204      }
  1205      ~WithRawCallbackMethod_GetGameServer() override {
  1206        BaseClassMustBeDerivedFromService(this);
  1207      }
  1208      // disable synchronous version of this method
  1209      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
  1210        abort();
  1211        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1212      }
  1213      virtual ::grpc::ServerUnaryReactor* GetGameServer(
  1214        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1215    };
  1216    template <class BaseClass>
  1217    class WithRawCallbackMethod_WatchGameServer : public BaseClass {
  1218     private:
  1219      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1220     public:
  1221      WithRawCallbackMethod_WatchGameServer() {
  1222        ::grpc::Service::MarkMethodRawCallback(5,
  1223            new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1224              [this](
  1225                     ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->WatchGameServer(context, request); }));
  1226      }
  1227      ~WithRawCallbackMethod_WatchGameServer() override {
  1228        BaseClassMustBeDerivedFromService(this);
  1229      }
  1230      // disable synchronous version of this method
  1231      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
  1232        abort();
  1233        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1234      }
  1235      virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* WatchGameServer(
  1236        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)  { return nullptr; }
  1237    };
  1238    template <class BaseClass>
  1239    class WithRawCallbackMethod_SetLabel : public BaseClass {
  1240     private:
  1241      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1242     public:
  1243      WithRawCallbackMethod_SetLabel() {
  1244        ::grpc::Service::MarkMethodRawCallback(6,
  1245            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1246              [this](
  1247                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetLabel(context, request, response); }));
  1248      }
  1249      ~WithRawCallbackMethod_SetLabel() override {
  1250        BaseClassMustBeDerivedFromService(this);
  1251      }
  1252      // disable synchronous version of this method
  1253      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1254        abort();
  1255        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1256      }
  1257      virtual ::grpc::ServerUnaryReactor* SetLabel(
  1258        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1259    };
  1260    template <class BaseClass>
  1261    class WithRawCallbackMethod_SetAnnotation : public BaseClass {
  1262     private:
  1263      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1264     public:
  1265      WithRawCallbackMethod_SetAnnotation() {
  1266        ::grpc::Service::MarkMethodRawCallback(7,
  1267            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1268              [this](
  1269                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetAnnotation(context, request, response); }));
  1270      }
  1271      ~WithRawCallbackMethod_SetAnnotation() override {
  1272        BaseClassMustBeDerivedFromService(this);
  1273      }
  1274      // disable synchronous version of this method
  1275      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1276        abort();
  1277        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1278      }
  1279      virtual ::grpc::ServerUnaryReactor* SetAnnotation(
  1280        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1281    };
  1282    template <class BaseClass>
  1283    class WithRawCallbackMethod_Reserve : public BaseClass {
  1284     private:
  1285      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1286     public:
  1287      WithRawCallbackMethod_Reserve() {
  1288        ::grpc::Service::MarkMethodRawCallback(8,
  1289            new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1290              [this](
  1291                     ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Reserve(context, request, response); }));
  1292      }
  1293      ~WithRawCallbackMethod_Reserve() override {
  1294        BaseClassMustBeDerivedFromService(this);
  1295      }
  1296      // disable synchronous version of this method
  1297      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1298        abort();
  1299        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1300      }
  1301      virtual ::grpc::ServerUnaryReactor* Reserve(
  1302        ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
  1303    };
  1304    template <class BaseClass>
  1305    class WithStreamedUnaryMethod_Ready : public BaseClass {
  1306     private:
  1307      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1308     public:
  1309      WithStreamedUnaryMethod_Ready() {
  1310        ::grpc::Service::MarkMethodStreamed(0,
  1311          new ::grpc::internal::StreamedUnaryHandler<
  1312            ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
  1313              [this](::grpc::ServerContext* context,
  1314                     ::grpc::ServerUnaryStreamer<
  1315                       ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* streamer) {
  1316                         return this->StreamedReady(context,
  1317                           streamer);
  1318                    }));
  1319      }
  1320      ~WithStreamedUnaryMethod_Ready() override {
  1321        BaseClassMustBeDerivedFromService(this);
  1322      }
  1323      // disable regular version of this method
  1324      ::grpc::Status Ready(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1325        abort();
  1326        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1327      }
  1328      // replace default version of method with streamed unary
  1329      virtual ::grpc::Status StreamedReady(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::Empty,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1330    };
  1331    template <class BaseClass>
  1332    class WithStreamedUnaryMethod_Allocate : public BaseClass {
  1333     private:
  1334      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1335     public:
  1336      WithStreamedUnaryMethod_Allocate() {
  1337        ::grpc::Service::MarkMethodStreamed(1,
  1338          new ::grpc::internal::StreamedUnaryHandler<
  1339            ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
  1340              [this](::grpc::ServerContext* context,
  1341                     ::grpc::ServerUnaryStreamer<
  1342                       ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* streamer) {
  1343                         return this->StreamedAllocate(context,
  1344                           streamer);
  1345                    }));
  1346      }
  1347      ~WithStreamedUnaryMethod_Allocate() override {
  1348        BaseClassMustBeDerivedFromService(this);
  1349      }
  1350      // disable regular version of this method
  1351      ::grpc::Status Allocate(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1352        abort();
  1353        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1354      }
  1355      // replace default version of method with streamed unary
  1356      virtual ::grpc::Status StreamedAllocate(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::Empty,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1357    };
  1358    template <class BaseClass>
  1359    class WithStreamedUnaryMethod_Shutdown : public BaseClass {
  1360     private:
  1361      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1362     public:
  1363      WithStreamedUnaryMethod_Shutdown() {
  1364        ::grpc::Service::MarkMethodStreamed(2,
  1365          new ::grpc::internal::StreamedUnaryHandler<
  1366            ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>(
  1367              [this](::grpc::ServerContext* context,
  1368                     ::grpc::ServerUnaryStreamer<
  1369                       ::agones::dev::sdk::Empty, ::agones::dev::sdk::Empty>* streamer) {
  1370                         return this->StreamedShutdown(context,
  1371                           streamer);
  1372                    }));
  1373      }
  1374      ~WithStreamedUnaryMethod_Shutdown() override {
  1375        BaseClassMustBeDerivedFromService(this);
  1376      }
  1377      // disable regular version of this method
  1378      ::grpc::Status Shutdown(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1379        abort();
  1380        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1381      }
  1382      // replace default version of method with streamed unary
  1383      virtual ::grpc::Status StreamedShutdown(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::Empty,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1384    };
  1385    template <class BaseClass>
  1386    class WithStreamedUnaryMethod_GetGameServer : public BaseClass {
  1387     private:
  1388      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1389     public:
  1390      WithStreamedUnaryMethod_GetGameServer() {
  1391        ::grpc::Service::MarkMethodStreamed(4,
  1392          new ::grpc::internal::StreamedUnaryHandler<
  1393            ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>(
  1394              [this](::grpc::ServerContext* context,
  1395                     ::grpc::ServerUnaryStreamer<
  1396                       ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>* streamer) {
  1397                         return this->StreamedGetGameServer(context,
  1398                           streamer);
  1399                    }));
  1400      }
  1401      ~WithStreamedUnaryMethod_GetGameServer() override {
  1402        BaseClassMustBeDerivedFromService(this);
  1403      }
  1404      // disable regular version of this method
  1405      ::grpc::Status GetGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::agones::dev::sdk::GameServer* /*response*/) override {
  1406        abort();
  1407        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1408      }
  1409      // replace default version of method with streamed unary
  1410      virtual ::grpc::Status StreamedGetGameServer(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::Empty,::agones::dev::sdk::GameServer>* server_unary_streamer) = 0;
  1411    };
  1412    template <class BaseClass>
  1413    class WithStreamedUnaryMethod_SetLabel : public BaseClass {
  1414     private:
  1415      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1416     public:
  1417      WithStreamedUnaryMethod_SetLabel() {
  1418        ::grpc::Service::MarkMethodStreamed(6,
  1419          new ::grpc::internal::StreamedUnaryHandler<
  1420            ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>(
  1421              [this](::grpc::ServerContext* context,
  1422                     ::grpc::ServerUnaryStreamer<
  1423                       ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>* streamer) {
  1424                         return this->StreamedSetLabel(context,
  1425                           streamer);
  1426                    }));
  1427      }
  1428      ~WithStreamedUnaryMethod_SetLabel() override {
  1429        BaseClassMustBeDerivedFromService(this);
  1430      }
  1431      // disable regular version of this method
  1432      ::grpc::Status SetLabel(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1433        abort();
  1434        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1435      }
  1436      // replace default version of method with streamed unary
  1437      virtual ::grpc::Status StreamedSetLabel(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::KeyValue,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1438    };
  1439    template <class BaseClass>
  1440    class WithStreamedUnaryMethod_SetAnnotation : public BaseClass {
  1441     private:
  1442      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1443     public:
  1444      WithStreamedUnaryMethod_SetAnnotation() {
  1445        ::grpc::Service::MarkMethodStreamed(7,
  1446          new ::grpc::internal::StreamedUnaryHandler<
  1447            ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>(
  1448              [this](::grpc::ServerContext* context,
  1449                     ::grpc::ServerUnaryStreamer<
  1450                       ::agones::dev::sdk::KeyValue, ::agones::dev::sdk::Empty>* streamer) {
  1451                         return this->StreamedSetAnnotation(context,
  1452                           streamer);
  1453                    }));
  1454      }
  1455      ~WithStreamedUnaryMethod_SetAnnotation() override {
  1456        BaseClassMustBeDerivedFromService(this);
  1457      }
  1458      // disable regular version of this method
  1459      ::grpc::Status SetAnnotation(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::KeyValue* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1460        abort();
  1461        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1462      }
  1463      // replace default version of method with streamed unary
  1464      virtual ::grpc::Status StreamedSetAnnotation(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::KeyValue,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1465    };
  1466    template <class BaseClass>
  1467    class WithStreamedUnaryMethod_Reserve : public BaseClass {
  1468     private:
  1469      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1470     public:
  1471      WithStreamedUnaryMethod_Reserve() {
  1472        ::grpc::Service::MarkMethodStreamed(8,
  1473          new ::grpc::internal::StreamedUnaryHandler<
  1474            ::agones::dev::sdk::Duration, ::agones::dev::sdk::Empty>(
  1475              [this](::grpc::ServerContext* context,
  1476                     ::grpc::ServerUnaryStreamer<
  1477                       ::agones::dev::sdk::Duration, ::agones::dev::sdk::Empty>* streamer) {
  1478                         return this->StreamedReserve(context,
  1479                           streamer);
  1480                    }));
  1481      }
  1482      ~WithStreamedUnaryMethod_Reserve() override {
  1483        BaseClassMustBeDerivedFromService(this);
  1484      }
  1485      // disable regular version of this method
  1486      ::grpc::Status Reserve(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Duration* /*request*/, ::agones::dev::sdk::Empty* /*response*/) override {
  1487        abort();
  1488        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1489      }
  1490      // replace default version of method with streamed unary
  1491      virtual ::grpc::Status StreamedReserve(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::agones::dev::sdk::Duration,::agones::dev::sdk::Empty>* server_unary_streamer) = 0;
  1492    };
  1493    typedef WithStreamedUnaryMethod_Ready<WithStreamedUnaryMethod_Allocate<WithStreamedUnaryMethod_Shutdown<WithStreamedUnaryMethod_GetGameServer<WithStreamedUnaryMethod_SetLabel<WithStreamedUnaryMethod_SetAnnotation<WithStreamedUnaryMethod_Reserve<Service > > > > > > > StreamedUnaryService;
  1494    template <class BaseClass>
  1495    class WithSplitStreamingMethod_WatchGameServer : public BaseClass {
  1496     private:
  1497      void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
  1498     public:
  1499      WithSplitStreamingMethod_WatchGameServer() {
  1500        ::grpc::Service::MarkMethodStreamed(5,
  1501          new ::grpc::internal::SplitServerStreamingHandler<
  1502            ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>(
  1503              [this](::grpc::ServerContext* context,
  1504                     ::grpc::ServerSplitStreamer<
  1505                       ::agones::dev::sdk::Empty, ::agones::dev::sdk::GameServer>* streamer) {
  1506                         return this->StreamedWatchGameServer(context,
  1507                           streamer);
  1508                    }));
  1509      }
  1510      ~WithSplitStreamingMethod_WatchGameServer() override {
  1511        BaseClassMustBeDerivedFromService(this);
  1512      }
  1513      // disable regular version of this method
  1514      ::grpc::Status WatchGameServer(::grpc::ServerContext* /*context*/, const ::agones::dev::sdk::Empty* /*request*/, ::grpc::ServerWriter< ::agones::dev::sdk::GameServer>* /*writer*/) override {
  1515        abort();
  1516        return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1517      }
  1518      // replace default version of method with split streamed
  1519      virtual ::grpc::Status StreamedWatchGameServer(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::agones::dev::sdk::Empty,::agones::dev::sdk::GameServer>* server_split_streamer) = 0;
  1520    };
  1521    typedef WithSplitStreamingMethod_WatchGameServer<Service > SplitStreamedService;
  1522    typedef WithStreamedUnaryMethod_Ready<WithStreamedUnaryMethod_Allocate<WithStreamedUnaryMethod_Shutdown<WithStreamedUnaryMethod_GetGameServer<WithSplitStreamingMethod_WatchGameServer<WithStreamedUnaryMethod_SetLabel<WithStreamedUnaryMethod_SetAnnotation<WithStreamedUnaryMethod_Reserve<Service > > > > > > > > StreamedService;
  1523  };
  1524  
  1525  }  // namespace sdk
  1526  }  // namespace dev
  1527  }  // namespace agones
  1528  
  1529  
  1530  #include <grpcpp/ports_undef.inc>
  1531  #endif  // GRPC_sdk_2eproto__INCLUDED