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

from strmprivacy.api.notifications.v1 import notifications_v1_pb2 as strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.SubscribeNotifications = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/SubscribeNotifications',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsResponse.FromString,
                )
        self.UnSubscribeNotifications = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/UnSubscribeNotifications',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsResponse.FromString,
                )
        self.ListSubscriptions = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/ListSubscriptions',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsResponse.FromString,
                )
        self.NotifySubscribers = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/NotifySubscribers',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersResponse.FromString,
                )
        self.NotifyUsers = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/NotifyUsers',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersResponse.FromString,
                )
        self.ReceiveNotifications = channel.unary_stream(
                '/strmprivacy.api.notifications.v1.NotificationsService/ReceiveNotifications',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsResponse.FromString,
                )
        self.ListNotifications = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/ListNotifications',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsResponse.FromString,
                )
        self.AlterNotificationsHasBeenSeen = channel.unary_unary(
                '/strmprivacy.api.notifications.v1.NotificationsService/AlterNotificationsHasBeenSeen',
                request_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenRequest.SerializeToString,
                response_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenResponse.FromString,
                )


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

    def SubscribeNotifications(self, request, context):
        """Tell the notification service that the given user should receive notifications about the given entity.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UnSubscribeNotifications(self, request, context):
        """Tell the notification service that the given user should *not* receive notifications about the given entity.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSubscriptions(self, request, context):
        """List the subscriptions of a certain user.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def NotifySubscribers(self, request, context):
        """Called by systems (schema-registry for instance) that want to notify subscribed users about something.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def NotifyUsers(self, request, context):
        """Notify specific users directly, regardless of their subscriptions.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReceiveNotifications(self, request, context):
        """Called by the user's browser to receive notifications.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListNotifications(self, request, context):
        """List notifications for a user.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AlterNotificationsHasBeenSeen(self, request, context):
        """set the has_been_seen status of notification(s)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_NotificationsServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SubscribeNotifications': grpc.unary_unary_rpc_method_handler(
                    servicer.SubscribeNotifications,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsResponse.SerializeToString,
            ),
            'UnSubscribeNotifications': grpc.unary_unary_rpc_method_handler(
                    servicer.UnSubscribeNotifications,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsResponse.SerializeToString,
            ),
            'ListSubscriptions': grpc.unary_unary_rpc_method_handler(
                    servicer.ListSubscriptions,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsResponse.SerializeToString,
            ),
            'NotifySubscribers': grpc.unary_unary_rpc_method_handler(
                    servicer.NotifySubscribers,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersResponse.SerializeToString,
            ),
            'NotifyUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.NotifyUsers,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersResponse.SerializeToString,
            ),
            'ReceiveNotifications': grpc.unary_stream_rpc_method_handler(
                    servicer.ReceiveNotifications,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsResponse.SerializeToString,
            ),
            'ListNotifications': grpc.unary_unary_rpc_method_handler(
                    servicer.ListNotifications,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsResponse.SerializeToString,
            ),
            'AlterNotificationsHasBeenSeen': grpc.unary_unary_rpc_method_handler(
                    servicer.AlterNotificationsHasBeenSeen,
                    request_deserializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenRequest.FromString,
                    response_serializer=strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'strmprivacy.api.notifications.v1.NotificationsService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def SubscribeNotifications(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, '/strmprivacy.api.notifications.v1.NotificationsService/SubscribeNotifications',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.SubscribeNotificationsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UnSubscribeNotifications(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, '/strmprivacy.api.notifications.v1.NotificationsService/UnSubscribeNotifications',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.UnSubscribeNotificationsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListSubscriptions(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, '/strmprivacy.api.notifications.v1.NotificationsService/ListSubscriptions',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListSubscriptionsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def NotifySubscribers(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, '/strmprivacy.api.notifications.v1.NotificationsService/NotifySubscribers',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifySubscribersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def NotifyUsers(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, '/strmprivacy.api.notifications.v1.NotificationsService/NotifyUsers',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.NotifyUsersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReceiveNotifications(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_stream(request, target, '/strmprivacy.api.notifications.v1.NotificationsService/ReceiveNotifications',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ReceiveNotificationsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListNotifications(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, '/strmprivacy.api.notifications.v1.NotificationsService/ListNotifications',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.ListNotificationsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AlterNotificationsHasBeenSeen(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, '/strmprivacy.api.notifications.v1.NotificationsService/AlterNotificationsHasBeenSeen',
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenRequest.SerializeToString,
            strmprivacy_dot_api_dot_notifications_dot_v1_dot_notifications__v1__pb2.AlterNotificationsHasBeenSeenResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
