# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from . import events_pb2 as events__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class EventsStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.CreateEvent = channel.unary_unary(
                '/org.couchers.api.events.Events/CreateEvent',
                request_serializer=events__pb2.CreateEventReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.ScheduleEvent = channel.unary_unary(
                '/org.couchers.api.events.Events/ScheduleEvent',
                request_serializer=events__pb2.ScheduleEventReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.UpdateEvent = channel.unary_unary(
                '/org.couchers.api.events.Events/UpdateEvent',
                request_serializer=events__pb2.UpdateEventReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.GetEvent = channel.unary_unary(
                '/org.couchers.api.events.Events/GetEvent',
                request_serializer=events__pb2.GetEventReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.ListEventOccurrences = channel.unary_unary(
                '/org.couchers.api.events.Events/ListEventOccurrences',
                request_serializer=events__pb2.ListEventOccurrencesReq.SerializeToString,
                response_deserializer=events__pb2.ListEventOccurrencesRes.FromString,
                )
        self.ListEventAttendees = channel.unary_unary(
                '/org.couchers.api.events.Events/ListEventAttendees',
                request_serializer=events__pb2.ListEventAttendeesReq.SerializeToString,
                response_deserializer=events__pb2.ListEventAttendeesRes.FromString,
                )
        self.ListEventSubscribers = channel.unary_unary(
                '/org.couchers.api.events.Events/ListEventSubscribers',
                request_serializer=events__pb2.ListEventSubscribersReq.SerializeToString,
                response_deserializer=events__pb2.ListEventSubscribersRes.FromString,
                )
        self.ListEventOrganizers = channel.unary_unary(
                '/org.couchers.api.events.Events/ListEventOrganizers',
                request_serializer=events__pb2.ListEventOrganizersReq.SerializeToString,
                response_deserializer=events__pb2.ListEventOrganizersRes.FromString,
                )
        self.TransferEvent = channel.unary_unary(
                '/org.couchers.api.events.Events/TransferEvent',
                request_serializer=events__pb2.TransferEventReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.SetEventSubscription = channel.unary_unary(
                '/org.couchers.api.events.Events/SetEventSubscription',
                request_serializer=events__pb2.SetEventSubscriptionReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.SetEventAttendance = channel.unary_unary(
                '/org.couchers.api.events.Events/SetEventAttendance',
                request_serializer=events__pb2.SetEventAttendanceReq.SerializeToString,
                response_deserializer=events__pb2.Event.FromString,
                )
        self.InviteEventOrganizer = channel.unary_unary(
                '/org.couchers.api.events.Events/InviteEventOrganizer',
                request_serializer=events__pb2.InviteEventOrganizerReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.RemoveEventOrganizer = channel.unary_unary(
                '/org.couchers.api.events.Events/RemoveEventOrganizer',
                request_serializer=events__pb2.RemoveEventOrganizerReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ListMyEvents = channel.unary_unary(
                '/org.couchers.api.events.Events/ListMyEvents',
                request_serializer=events__pb2.ListMyEventsReq.SerializeToString,
                response_deserializer=events__pb2.ListMyEventsRes.FromString,
                )
        self.ListAllEvents = channel.unary_unary(
                '/org.couchers.api.events.Events/ListAllEvents',
                request_serializer=events__pb2.ListAllEventsReq.SerializeToString,
                response_deserializer=events__pb2.ListAllEventsRes.FromString,
                )


class EventsServicer(object):
    """Missing associated documentation comment in .proto file."""

    def CreateEvent(self, request, context):
        """Creates an event, only one instance, add more with ScheduleEvent
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ScheduleEvent(self, request, context):
        """Schedules a new occurrence of an existing event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateEvent(self, request, context):
        """Edit an event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEvent(self, request, context):
        """Gets an event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEventOccurrences(self, request, context):
        """List all occurrences of a recurring event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEventAttendees(self, request, context):
        """Paginated list of event attendees
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEventSubscribers(self, request, context):
        """Paginated list of event subscribers
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEventOrganizers(self, request, context):
        """Paginated list of event organizers
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TransferEvent(self, request, context):
        """Transfer an event you own to either a group or a community
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetEventSubscription(self, request, context):
        """Subscribe to get notifications about all occurrences of an event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetEventAttendance(self, request, context):
        """RSVP/change going status for an occurrence of an event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InviteEventOrganizer(self, request, context):
        """Invite another user to become an organizer of this event
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RemoveEventOrganizer(self, request, context):
        """Remove yourself as an event organizer
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListMyEvents(self, request, context):
        """Lists all subscribed, attending
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListAllEvents(self, request, context):
        """Lists all events
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_EventsServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateEvent': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEvent,
                    request_deserializer=events__pb2.CreateEventReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'ScheduleEvent': grpc.unary_unary_rpc_method_handler(
                    servicer.ScheduleEvent,
                    request_deserializer=events__pb2.ScheduleEventReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'UpdateEvent': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateEvent,
                    request_deserializer=events__pb2.UpdateEventReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'GetEvent': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEvent,
                    request_deserializer=events__pb2.GetEventReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'ListEventOccurrences': grpc.unary_unary_rpc_method_handler(
                    servicer.ListEventOccurrences,
                    request_deserializer=events__pb2.ListEventOccurrencesReq.FromString,
                    response_serializer=events__pb2.ListEventOccurrencesRes.SerializeToString,
            ),
            'ListEventAttendees': grpc.unary_unary_rpc_method_handler(
                    servicer.ListEventAttendees,
                    request_deserializer=events__pb2.ListEventAttendeesReq.FromString,
                    response_serializer=events__pb2.ListEventAttendeesRes.SerializeToString,
            ),
            'ListEventSubscribers': grpc.unary_unary_rpc_method_handler(
                    servicer.ListEventSubscribers,
                    request_deserializer=events__pb2.ListEventSubscribersReq.FromString,
                    response_serializer=events__pb2.ListEventSubscribersRes.SerializeToString,
            ),
            'ListEventOrganizers': grpc.unary_unary_rpc_method_handler(
                    servicer.ListEventOrganizers,
                    request_deserializer=events__pb2.ListEventOrganizersReq.FromString,
                    response_serializer=events__pb2.ListEventOrganizersRes.SerializeToString,
            ),
            'TransferEvent': grpc.unary_unary_rpc_method_handler(
                    servicer.TransferEvent,
                    request_deserializer=events__pb2.TransferEventReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'SetEventSubscription': grpc.unary_unary_rpc_method_handler(
                    servicer.SetEventSubscription,
                    request_deserializer=events__pb2.SetEventSubscriptionReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'SetEventAttendance': grpc.unary_unary_rpc_method_handler(
                    servicer.SetEventAttendance,
                    request_deserializer=events__pb2.SetEventAttendanceReq.FromString,
                    response_serializer=events__pb2.Event.SerializeToString,
            ),
            'InviteEventOrganizer': grpc.unary_unary_rpc_method_handler(
                    servicer.InviteEventOrganizer,
                    request_deserializer=events__pb2.InviteEventOrganizerReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'RemoveEventOrganizer': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveEventOrganizer,
                    request_deserializer=events__pb2.RemoveEventOrganizerReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ListMyEvents': grpc.unary_unary_rpc_method_handler(
                    servicer.ListMyEvents,
                    request_deserializer=events__pb2.ListMyEventsReq.FromString,
                    response_serializer=events__pb2.ListMyEventsRes.SerializeToString,
            ),
            'ListAllEvents': grpc.unary_unary_rpc_method_handler(
                    servicer.ListAllEvents,
                    request_deserializer=events__pb2.ListAllEventsReq.FromString,
                    response_serializer=events__pb2.ListAllEventsRes.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'org.couchers.api.events.Events', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Events(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def CreateEvent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/CreateEvent',
            events__pb2.CreateEventReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ScheduleEvent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ScheduleEvent',
            events__pb2.ScheduleEventReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateEvent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/UpdateEvent',
            events__pb2.UpdateEventReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEvent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/GetEvent',
            events__pb2.GetEventReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEventOccurrences(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListEventOccurrences',
            events__pb2.ListEventOccurrencesReq.SerializeToString,
            events__pb2.ListEventOccurrencesRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEventAttendees(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListEventAttendees',
            events__pb2.ListEventAttendeesReq.SerializeToString,
            events__pb2.ListEventAttendeesRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEventSubscribers(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListEventSubscribers',
            events__pb2.ListEventSubscribersReq.SerializeToString,
            events__pb2.ListEventSubscribersRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEventOrganizers(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListEventOrganizers',
            events__pb2.ListEventOrganizersReq.SerializeToString,
            events__pb2.ListEventOrganizersRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TransferEvent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/TransferEvent',
            events__pb2.TransferEventReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetEventSubscription(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/SetEventSubscription',
            events__pb2.SetEventSubscriptionReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetEventAttendance(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/SetEventAttendance',
            events__pb2.SetEventAttendanceReq.SerializeToString,
            events__pb2.Event.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def InviteEventOrganizer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/InviteEventOrganizer',
            events__pb2.InviteEventOrganizerReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveEventOrganizer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/RemoveEventOrganizer',
            events__pb2.RemoveEventOrganizerReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListMyEvents(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListMyEvents',
            events__pb2.ListMyEventsReq.SerializeToString,
            events__pb2.ListMyEventsRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListAllEvents(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.events.Events/ListAllEvents',
            events__pb2.ListAllEventsReq.SerializeToString,
            events__pb2.ListAllEventsRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
