# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
import http_pb2 as http__pb2


class BookstoreStub(object):
  """A simple Bookstore API.

  The API manages shelves and books resources. Shelves contain books.
  """

  def __init__(self, channel):
    """Constructor.

    Args:
      channel: A grpc.Channel.
    """
    self.ListShelves = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/ListShelves',
        request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        response_deserializer=http__pb2.ListShelvesResponse.FromString,
        )
    self.CreateShelf = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/CreateShelf',
        request_serializer=http__pb2.CreateShelfRequest.SerializeToString,
        response_deserializer=http__pb2.Shelf.FromString,
        )
    self.GetShelf = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/GetShelf',
        request_serializer=http__pb2.GetShelfRequest.SerializeToString,
        response_deserializer=http__pb2.Shelf.FromString,
        )
    self.DeleteShelf = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/DeleteShelf',
        request_serializer=http__pb2.DeleteShelfRequest.SerializeToString,
        response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )
    self.ListBooks = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/ListBooks',
        request_serializer=http__pb2.ListBooksRequest.SerializeToString,
        response_deserializer=http__pb2.ListBooksResponse.FromString,
        )
    self.CreateBook = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/CreateBook',
        request_serializer=http__pb2.CreateBookRequest.SerializeToString,
        response_deserializer=http__pb2.Book.FromString,
        )
    self.GetBook = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/GetBook',
        request_serializer=http__pb2.GetBookRequest.SerializeToString,
        response_deserializer=http__pb2.Book.FromString,
        )
    self.DeleteBook = channel.unary_unary(
        '/endpoints.examples.bookstore.Bookstore/DeleteBook',
        request_serializer=http__pb2.DeleteBookRequest.SerializeToString,
        response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )


class BookstoreServicer(object):
  """A simple Bookstore API.

  The API manages shelves and books resources. Shelves contain books.
  """

  def ListShelves(self, request, context):
    """Returns a list of all shelves in the bookstore.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CreateShelf(self, request, context):
    """Creates a new shelf in the bookstore.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def GetShelf(self, request, context):
    """Returns a specific bookstore shelf.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DeleteShelf(self, request, context):
    """Deletes a shelf, including all books that are stored on the shelf.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ListBooks(self, request, context):
    """Returns a list of books on a shelf.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CreateBook(self, request, context):
    """Creates a new book.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def GetBook(self, request, context):
    """Returns a specific book.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DeleteBook(self, request, context):
    """Deletes a book from a shelf.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')


def add_BookstoreServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'ListShelves': grpc.unary_unary_rpc_method_handler(
          servicer.ListShelves,
          request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          response_serializer=http__pb2.ListShelvesResponse.SerializeToString,
      ),
      'CreateShelf': grpc.unary_unary_rpc_method_handler(
          servicer.CreateShelf,
          request_deserializer=http__pb2.CreateShelfRequest.FromString,
          response_serializer=http__pb2.Shelf.SerializeToString,
      ),
      'GetShelf': grpc.unary_unary_rpc_method_handler(
          servicer.GetShelf,
          request_deserializer=http__pb2.GetShelfRequest.FromString,
          response_serializer=http__pb2.Shelf.SerializeToString,
      ),
      'DeleteShelf': grpc.unary_unary_rpc_method_handler(
          servicer.DeleteShelf,
          request_deserializer=http__pb2.DeleteShelfRequest.FromString,
          response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ),
      'ListBooks': grpc.unary_unary_rpc_method_handler(
          servicer.ListBooks,
          request_deserializer=http__pb2.ListBooksRequest.FromString,
          response_serializer=http__pb2.ListBooksResponse.SerializeToString,
      ),
      'CreateBook': grpc.unary_unary_rpc_method_handler(
          servicer.CreateBook,
          request_deserializer=http__pb2.CreateBookRequest.FromString,
          response_serializer=http__pb2.Book.SerializeToString,
      ),
      'GetBook': grpc.unary_unary_rpc_method_handler(
          servicer.GetBook,
          request_deserializer=http__pb2.GetBookRequest.FromString,
          response_serializer=http__pb2.Book.SerializeToString,
      ),
      'DeleteBook': grpc.unary_unary_rpc_method_handler(
          servicer.DeleteBook,
          request_deserializer=http__pb2.DeleteBookRequest.FromString,
          response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ),
  }
  generic_handler = grpc.method_handlers_generic_handler(
      'endpoints.examples.bookstore.Bookstore', rpc_method_handlers)
  server.add_generic_rpc_handlers((generic_handler,))
