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

from .....olvid.daemon.command.v1 import attachment_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2
from .....olvid.daemon.command.v1 import call_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2
from .....olvid.daemon.command.v1 import contact_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2
from .....olvid.daemon.command.v1 import discussion_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2
from .....olvid.daemon.command.v1 import group_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2
from .....olvid.daemon.command.v1 import identity_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2
from .....olvid.daemon.command.v1 import invitation_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2
from .....olvid.daemon.command.v1 import keycloak_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2
from .....olvid.daemon.command.v1 import message_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2
from .....olvid.daemon.command.v1 import settings_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2
from .....olvid.daemon.command.v1 import storage_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2
from .....olvid.daemon.command.v1 import tool_commands_pb2 as olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2


class ToolCommandServiceStub(object):
    """Tool
    A set of utility entrypoint to test debug and your configuration.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Ping = channel.unary_unary(
                '/olvid.daemon.services.v1.ToolCommandService/Ping',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingResponse.FromString,
                _registered_method=True)
        self.DaemonVersion = channel.unary_unary(
                '/olvid.daemon.services.v1.ToolCommandService/DaemonVersion',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionResponse.FromString,
                _registered_method=True)
        self.AuthenticationTest = channel.unary_unary(
                '/olvid.daemon.services.v1.ToolCommandService/AuthenticationTest',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestResponse.FromString,
                _registered_method=True)
        self.AuthenticationAdminTest = channel.unary_unary(
                '/olvid.daemon.services.v1.ToolCommandService/AuthenticationAdminTest',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestResponse.FromString,
                _registered_method=True)


class ToolCommandServiceServicer(object):
    """Tool
    A set of utility entrypoint to test debug and your configuration.
    """

    def Ping(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DaemonVersion(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AuthenticationTest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AuthenticationAdminTest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ToolCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Ping': grpc.unary_unary_rpc_method_handler(
                    servicer.Ping,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingResponse.SerializeToString,
            ),
            'DaemonVersion': grpc.unary_unary_rpc_method_handler(
                    servicer.DaemonVersion,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionResponse.SerializeToString,
            ),
            'AuthenticationTest': grpc.unary_unary_rpc_method_handler(
                    servicer.AuthenticationTest,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestResponse.SerializeToString,
            ),
            'AuthenticationAdminTest': grpc.unary_unary_rpc_method_handler(
                    servicer.AuthenticationAdminTest,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.ToolCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.ToolCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class ToolCommandService(object):
    """Tool
    A set of utility entrypoint to test debug and your configuration.
    """

    @staticmethod
    def Ping(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,
            '/olvid.daemon.services.v1.ToolCommandService/Ping',
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.PingResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DaemonVersion(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,
            '/olvid.daemon.services.v1.ToolCommandService/DaemonVersion',
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.DaemonVersionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AuthenticationTest(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,
            '/olvid.daemon.services.v1.ToolCommandService/AuthenticationTest',
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationTestResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AuthenticationAdminTest(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,
            '/olvid.daemon.services.v1.ToolCommandService/AuthenticationAdminTest',
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_tool__commands__pb2.AuthenticationAdminTestResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class IdentityCommandServiceStub(object):
    """Identity
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.IdentityGet = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetResponse.FromString,
                _registered_method=True)
        self.IdentityGetBytesIdentifier = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetBytesIdentifier',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierResponse.FromString,
                _registered_method=True)
        self.IdentityGetInvitationLink = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetInvitationLink',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkResponse.FromString,
                _registered_method=True)
        self.IdentityUpdateDetails = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityUpdateDetails',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsResponse.FromString,
                _registered_method=True)
        self.IdentitySetPhoto = channel.stream_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoResponse.FromString,
                _registered_method=True)
        self.IdentityDownloadPhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityDownloadPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoResponse.FromString,
                _registered_method=True)
        self.IdentityRemovePhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityRemovePhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoResponse.FromString,
                _registered_method=True)
        self.IdentityGetApiKeyStatus = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetApiKeyStatus',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusResponse.FromString,
                _registered_method=True)
        self.IdentitySetApiKey = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetApiKey',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyResponse.FromString,
                _registered_method=True)
        self.IdentitySetConfigurationLink = channel.unary_unary(
                '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetConfigurationLink',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkResponse.FromString,
                _registered_method=True)


class IdentityCommandServiceServicer(object):
    """Identity
    """

    def IdentityGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityGetBytesIdentifier(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityGetInvitationLink(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityUpdateDetails(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentitySetPhoto(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityDownloadPhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityRemovePhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentityGetApiKeyStatus(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentitySetApiKey(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def IdentitySetConfigurationLink(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_IdentityCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'IdentityGet': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetResponse.SerializeToString,
            ),
            'IdentityGetBytesIdentifier': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityGetBytesIdentifier,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierResponse.SerializeToString,
            ),
            'IdentityGetInvitationLink': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityGetInvitationLink,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkResponse.SerializeToString,
            ),
            'IdentityUpdateDetails': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityUpdateDetails,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsResponse.SerializeToString,
            ),
            'IdentitySetPhoto': grpc.stream_unary_rpc_method_handler(
                    servicer.IdentitySetPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoResponse.SerializeToString,
            ),
            'IdentityDownloadPhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityDownloadPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoResponse.SerializeToString,
            ),
            'IdentityRemovePhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityRemovePhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoResponse.SerializeToString,
            ),
            'IdentityGetApiKeyStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentityGetApiKeyStatus,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusResponse.SerializeToString,
            ),
            'IdentitySetApiKey': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentitySetApiKey,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyResponse.SerializeToString,
            ),
            'IdentitySetConfigurationLink': grpc.unary_unary_rpc_method_handler(
                    servicer.IdentitySetConfigurationLink,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.IdentityCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.IdentityCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class IdentityCommandService(object):
    """Identity
    """

    @staticmethod
    def IdentityGet(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityGetBytesIdentifier(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetBytesIdentifier',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetBytesIdentifierResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityGetInvitationLink(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetInvitationLink',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetInvitationLinkResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityUpdateDetails(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityUpdateDetails',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityUpdateDetailsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentitySetPhoto(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityDownloadPhoto(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityDownloadPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityDownloadPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityRemovePhoto(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityRemovePhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityRemovePhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentityGetApiKeyStatus(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentityGetApiKeyStatus',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentityGetApiKeyStatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentitySetApiKey(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetApiKey',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetApiKeyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def IdentitySetConfigurationLink(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,
            '/olvid.daemon.services.v1.IdentityCommandService/IdentitySetConfigurationLink',
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_identity__commands__pb2.IdentitySetConfigurationLinkResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class InvitationCommandServiceStub(object):
    """Invitation
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.InvitationList = channel.unary_stream(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListResponse.FromString,
                _registered_method=True)
        self.InvitationGet = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetResponse.FromString,
                _registered_method=True)
        self.InvitationNew = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationNew',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewResponse.FromString,
                _registered_method=True)
        self.InvitationAccept = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationAccept',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptResponse.FromString,
                _registered_method=True)
        self.InvitationDecline = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationDecline',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineResponse.FromString,
                _registered_method=True)
        self.InvitationSas = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationSas',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasResponse.FromString,
                _registered_method=True)
        self.InvitationDelete = channel.unary_unary(
                '/olvid.daemon.services.v1.InvitationCommandService/InvitationDelete',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteResponse.FromString,
                _registered_method=True)


class InvitationCommandServiceServicer(object):
    """Invitation
    """

    def InvitationList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationNew(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationAccept(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationDecline(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationSas(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InvitationDelete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_InvitationCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'InvitationList': grpc.unary_stream_rpc_method_handler(
                    servicer.InvitationList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListResponse.SerializeToString,
            ),
            'InvitationGet': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetResponse.SerializeToString,
            ),
            'InvitationNew': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationNew,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewResponse.SerializeToString,
            ),
            'InvitationAccept': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationAccept,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptResponse.SerializeToString,
            ),
            'InvitationDecline': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationDecline,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineResponse.SerializeToString,
            ),
            'InvitationSas': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationSas,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasResponse.SerializeToString,
            ),
            'InvitationDelete': grpc.unary_unary_rpc_method_handler(
                    servicer.InvitationDelete,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.InvitationCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.InvitationCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class InvitationCommandService(object):
    """Invitation
    """

    @staticmethod
    def InvitationList(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationList',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationGet(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationNew(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationNew',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationNewResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationAccept(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationAccept',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationAcceptResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationDecline(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationDecline',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeclineResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationSas(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationSas',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationSasResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InvitationDelete(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,
            '/olvid.daemon.services.v1.InvitationCommandService/InvitationDelete',
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_invitation__commands__pb2.InvitationDeleteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class ContactCommandServiceStub(object):
    """Contact
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.ContactList = channel.unary_stream(
                '/olvid.daemon.services.v1.ContactCommandService/ContactList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListResponse.FromString,
                _registered_method=True)
        self.ContactGet = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetResponse.FromString,
                _registered_method=True)
        self.ContactGetBytesIdentifier = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactGetBytesIdentifier',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierResponse.FromString,
                _registered_method=True)
        self.ContactGetInvitationLink = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactGetInvitationLink',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkResponse.FromString,
                _registered_method=True)
        self.ContactDelete = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactDelete',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteResponse.FromString,
                _registered_method=True)
        self.ContactIntroduction = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactIntroduction',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionResponse.FromString,
                _registered_method=True)
        self.ContactDownloadPhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactDownloadPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoResponse.FromString,
                _registered_method=True)
        self.ContactRecreateChannels = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactRecreateChannels',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsResponse.FromString,
                _registered_method=True)
        self.ContactInviteToOneToOneDiscussion = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactInviteToOneToOneDiscussion',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionResponse.FromString,
                _registered_method=True)
        self.ContactDowngradeOneToOneDiscussion = channel.unary_unary(
                '/olvid.daemon.services.v1.ContactCommandService/ContactDowngradeOneToOneDiscussion',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionResponse.FromString,
                _registered_method=True)


class ContactCommandServiceServicer(object):
    """Contact
    """

    def ContactList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactGetBytesIdentifier(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactGetInvitationLink(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactDelete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactIntroduction(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactDownloadPhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactRecreateChannels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactInviteToOneToOneDiscussion(self, request, context):
        """collected contacts
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ContactDowngradeOneToOneDiscussion(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ContactCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'ContactList': grpc.unary_stream_rpc_method_handler(
                    servicer.ContactList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListResponse.SerializeToString,
            ),
            'ContactGet': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetResponse.SerializeToString,
            ),
            'ContactGetBytesIdentifier': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactGetBytesIdentifier,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierResponse.SerializeToString,
            ),
            'ContactGetInvitationLink': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactGetInvitationLink,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkResponse.SerializeToString,
            ),
            'ContactDelete': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactDelete,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteResponse.SerializeToString,
            ),
            'ContactIntroduction': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactIntroduction,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionResponse.SerializeToString,
            ),
            'ContactDownloadPhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactDownloadPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoResponse.SerializeToString,
            ),
            'ContactRecreateChannels': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactRecreateChannels,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsResponse.SerializeToString,
            ),
            'ContactInviteToOneToOneDiscussion': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactInviteToOneToOneDiscussion,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionResponse.SerializeToString,
            ),
            'ContactDowngradeOneToOneDiscussion': grpc.unary_unary_rpc_method_handler(
                    servicer.ContactDowngradeOneToOneDiscussion,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.ContactCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.ContactCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class ContactCommandService(object):
    """Contact
    """

    @staticmethod
    def ContactList(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactList',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactGet(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactGetBytesIdentifier(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactGetBytesIdentifier',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetBytesIdentifierResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactGetInvitationLink(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactGetInvitationLink',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactGetInvitationLinkResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactDelete(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactDelete',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDeleteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactIntroduction(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactIntroduction',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactIntroductionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactDownloadPhoto(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactDownloadPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDownloadPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactRecreateChannels(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactRecreateChannels',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactRecreateChannelsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactInviteToOneToOneDiscussion(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactInviteToOneToOneDiscussion',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactInviteToOneToOneDiscussionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ContactDowngradeOneToOneDiscussion(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,
            '/olvid.daemon.services.v1.ContactCommandService/ContactDowngradeOneToOneDiscussion',
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_contact__commands__pb2.ContactDowngradeOneToOneDiscussionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class KeycloakCommandServiceStub(object):
    """Keycloak
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.KeycloakBindIdentity = channel.unary_unary(
                '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakBindIdentity',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityResponse.FromString,
                _registered_method=True)
        self.KeycloakUnbindIdentity = channel.unary_unary(
                '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakUnbindIdentity',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityResponse.FromString,
                _registered_method=True)
        self.KeycloakUserList = channel.unary_stream(
                '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakUserList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListResponse.FromString,
                _registered_method=True)
        self.KeycloakAddUserAsContact = channel.unary_unary(
                '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakAddUserAsContact',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactResponse.FromString,
                _registered_method=True)


class KeycloakCommandServiceServicer(object):
    """Keycloak
    """

    def KeycloakBindIdentity(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KeycloakUnbindIdentity(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KeycloakUserList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def KeycloakAddUserAsContact(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_KeycloakCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'KeycloakBindIdentity': grpc.unary_unary_rpc_method_handler(
                    servicer.KeycloakBindIdentity,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityResponse.SerializeToString,
            ),
            'KeycloakUnbindIdentity': grpc.unary_unary_rpc_method_handler(
                    servicer.KeycloakUnbindIdentity,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityResponse.SerializeToString,
            ),
            'KeycloakUserList': grpc.unary_stream_rpc_method_handler(
                    servicer.KeycloakUserList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListResponse.SerializeToString,
            ),
            'KeycloakAddUserAsContact': grpc.unary_unary_rpc_method_handler(
                    servicer.KeycloakAddUserAsContact,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.KeycloakCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.KeycloakCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class KeycloakCommandService(object):
    """Keycloak
    """

    @staticmethod
    def KeycloakBindIdentity(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,
            '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakBindIdentity',
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakBindIdentityResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def KeycloakUnbindIdentity(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,
            '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakUnbindIdentity',
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUnbindIdentityResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def KeycloakUserList(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,
            '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakUserList',
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakUserListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def KeycloakAddUserAsContact(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,
            '/olvid.daemon.services.v1.KeycloakCommandService/KeycloakAddUserAsContact',
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_keycloak__commands__pb2.KeycloakAddUserAsContactResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class GroupCommandServiceStub(object):
    """Group
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.GroupList = channel.unary_stream(
                '/olvid.daemon.services.v1.GroupCommandService/GroupList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListResponse.FromString,
                _registered_method=True)
        self.GroupGet = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetResponse.FromString,
                _registered_method=True)
        self.GroupGetBytesIdentifier = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupGetBytesIdentifier',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierResponse.FromString,
                _registered_method=True)
        self.GroupNewStandardGroup = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupNewStandardGroup',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupResponse.FromString,
                _registered_method=True)
        self.GroupNewControlledGroup = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupNewControlledGroup',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupResponse.FromString,
                _registered_method=True)
        self.GroupNewReadOnlyGroup = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupNewReadOnlyGroup',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupResponse.FromString,
                _registered_method=True)
        self.GroupNewAdvancedGroup = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupNewAdvancedGroup',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupResponse.FromString,
                _registered_method=True)
        self.GroupDisband = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupDisband',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandResponse.FromString,
                _registered_method=True)
        self.GroupLeave = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupLeave',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveResponse.FromString,
                _registered_method=True)
        self.GroupUpdate = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupUpdate',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateResponse.FromString,
                _registered_method=True)
        self.GroupSetPhoto = channel.stream_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupSetPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoResponse.FromString,
                _registered_method=True)
        self.GroupDownloadPhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupDownloadPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoResponse.FromString,
                _registered_method=True)
        self.GroupUnsetPhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.GroupCommandService/GroupUnsetPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoResponse.FromString,
                _registered_method=True)


class GroupCommandServiceServicer(object):
    """Group
    """

    def GroupList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupGetBytesIdentifier(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupNewStandardGroup(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupNewControlledGroup(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupNewReadOnlyGroup(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupNewAdvancedGroup(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupDisband(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupLeave(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupUpdate(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupSetPhoto(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupDownloadPhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GroupUnsetPhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_GroupCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GroupList': grpc.unary_stream_rpc_method_handler(
                    servicer.GroupList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListResponse.SerializeToString,
            ),
            'GroupGet': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetResponse.SerializeToString,
            ),
            'GroupGetBytesIdentifier': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupGetBytesIdentifier,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierResponse.SerializeToString,
            ),
            'GroupNewStandardGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupNewStandardGroup,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupResponse.SerializeToString,
            ),
            'GroupNewControlledGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupNewControlledGroup,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupResponse.SerializeToString,
            ),
            'GroupNewReadOnlyGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupNewReadOnlyGroup,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupResponse.SerializeToString,
            ),
            'GroupNewAdvancedGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupNewAdvancedGroup,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupResponse.SerializeToString,
            ),
            'GroupDisband': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupDisband,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandResponse.SerializeToString,
            ),
            'GroupLeave': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupLeave,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveResponse.SerializeToString,
            ),
            'GroupUpdate': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupUpdate,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateResponse.SerializeToString,
            ),
            'GroupSetPhoto': grpc.stream_unary_rpc_method_handler(
                    servicer.GroupSetPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoResponse.SerializeToString,
            ),
            'GroupDownloadPhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupDownloadPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoResponse.SerializeToString,
            ),
            'GroupUnsetPhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.GroupUnsetPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.GroupCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.GroupCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class GroupCommandService(object):
    """Group
    """

    @staticmethod
    def GroupList(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupList',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupGet(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupGetBytesIdentifier(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupGetBytesIdentifier',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupGetBytesIdentifierResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupNewStandardGroup(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupNewStandardGroup',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewStandardGroupResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupNewControlledGroup(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupNewControlledGroup',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewControlledGroupResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupNewReadOnlyGroup(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupNewReadOnlyGroup',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewReadOnlyGroupResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupNewAdvancedGroup(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupNewAdvancedGroup',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupNewAdvancedGroupResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupDisband(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupDisband',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDisbandResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupLeave(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupLeave',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupLeaveResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupUpdate(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupUpdate',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUpdateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupSetPhoto(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/olvid.daemon.services.v1.GroupCommandService/GroupSetPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupSetPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupDownloadPhoto(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupDownloadPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupDownloadPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GroupUnsetPhoto(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,
            '/olvid.daemon.services.v1.GroupCommandService/GroupUnsetPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_group__commands__pb2.GroupUnsetPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class DiscussionCommandServiceStub(object):
    """Discussion
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.DiscussionList = channel.unary_stream(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListResponse.FromString,
                _registered_method=True)
        self.DiscussionGet = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetResponse.FromString,
                _registered_method=True)
        self.DiscussionGetBytesIdentifier = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetBytesIdentifier',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierResponse.FromString,
                _registered_method=True)
        self.DiscussionGetByContact = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetByContact',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactResponse.FromString,
                _registered_method=True)
        self.DiscussionGetByGroup = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetByGroup',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupResponse.FromString,
                _registered_method=True)
        self.DiscussionEmpty = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionEmpty',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyResponse.FromString,
                _registered_method=True)
        self.DiscussionDownloadPhoto = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionDownloadPhoto',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoResponse.FromString,
                _registered_method=True)
        self.DiscussionLockedList = channel.unary_stream(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionLockedList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListResponse.FromString,
                _registered_method=True)
        self.DiscussionLockedDelete = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionLockedDelete',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteResponse.FromString,
                _registered_method=True)


class DiscussionCommandServiceServicer(object):
    """Discussion
    """

    def DiscussionList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionGetBytesIdentifier(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionGetByContact(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionGetByGroup(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionEmpty(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionDownloadPhoto(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionLockedList(self, request, context):
        """locked discussions
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionLockedDelete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_DiscussionCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'DiscussionList': grpc.unary_stream_rpc_method_handler(
                    servicer.DiscussionList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListResponse.SerializeToString,
            ),
            'DiscussionGet': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetResponse.SerializeToString,
            ),
            'DiscussionGetBytesIdentifier': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionGetBytesIdentifier,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierResponse.SerializeToString,
            ),
            'DiscussionGetByContact': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionGetByContact,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactResponse.SerializeToString,
            ),
            'DiscussionGetByGroup': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionGetByGroup,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupResponse.SerializeToString,
            ),
            'DiscussionEmpty': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionEmpty,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyResponse.SerializeToString,
            ),
            'DiscussionDownloadPhoto': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionDownloadPhoto,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoResponse.SerializeToString,
            ),
            'DiscussionLockedList': grpc.unary_stream_rpc_method_handler(
                    servicer.DiscussionLockedList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListResponse.SerializeToString,
            ),
            'DiscussionLockedDelete': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionLockedDelete,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.DiscussionCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.DiscussionCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class DiscussionCommandService(object):
    """Discussion
    """

    @staticmethod
    def DiscussionList(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionList',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionGet(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionGetBytesIdentifier(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetBytesIdentifier',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetBytesIdentifierResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionGetByContact(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetByContact',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByContactResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionGetByGroup(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionGetByGroup',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionGetByGroupResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionEmpty(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionEmpty',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionEmptyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionDownloadPhoto(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionDownloadPhoto',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionDownloadPhotoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionLockedList(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionLockedList',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionLockedDelete(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,
            '/olvid.daemon.services.v1.DiscussionCommandService/DiscussionLockedDelete',
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_discussion__commands__pb2.DiscussionLockedDeleteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class MessageCommandServiceStub(object):
    """Message
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.MessageList = channel.unary_stream(
                '/olvid.daemon.services.v1.MessageCommandService/MessageList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListResponse.FromString,
                _registered_method=True)
        self.MessageGet = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetResponse.FromString,
                _registered_method=True)
        self.MessageSend = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageSend',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendResponse.FromString,
                _registered_method=True)
        self.MessageSendWithAttachments = channel.stream_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageSendWithAttachments',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsResponse.FromString,
                _registered_method=True)
        self.MessageReact = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageReact',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactResponse.FromString,
                _registered_method=True)
        self.MessageUpdateBody = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageUpdateBody',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyResponse.FromString,
                _registered_method=True)
        self.MessageDelete = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageDelete',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteResponse.FromString,
                _registered_method=True)
        self.MessageSendLocation = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageSendLocation',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationResponse.FromString,
                _registered_method=True)
        self.MessageStartLocationSharing = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageStartLocationSharing',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingResponse.FromString,
                _registered_method=True)
        self.MessageUpdateLocationSharing = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageUpdateLocationSharing',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingResponse.FromString,
                _registered_method=True)
        self.MessageEndLocationSharing = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageEndLocationSharing',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingResponse.FromString,
                _registered_method=True)
        self.MessageRefresh = channel.unary_unary(
                '/olvid.daemon.services.v1.MessageCommandService/MessageRefresh',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshResponse.FromString,
                _registered_method=True)


class MessageCommandServiceServicer(object):
    """Message
    """

    def MessageList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageSend(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageSendWithAttachments(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageReact(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageUpdateBody(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageDelete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageSendLocation(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageStartLocationSharing(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageUpdateLocationSharing(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageEndLocationSharing(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MessageRefresh(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_MessageCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'MessageList': grpc.unary_stream_rpc_method_handler(
                    servicer.MessageList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListResponse.SerializeToString,
            ),
            'MessageGet': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetResponse.SerializeToString,
            ),
            'MessageSend': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageSend,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendResponse.SerializeToString,
            ),
            'MessageSendWithAttachments': grpc.stream_unary_rpc_method_handler(
                    servicer.MessageSendWithAttachments,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsResponse.SerializeToString,
            ),
            'MessageReact': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageReact,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactResponse.SerializeToString,
            ),
            'MessageUpdateBody': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageUpdateBody,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyResponse.SerializeToString,
            ),
            'MessageDelete': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageDelete,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteResponse.SerializeToString,
            ),
            'MessageSendLocation': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageSendLocation,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationResponse.SerializeToString,
            ),
            'MessageStartLocationSharing': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageStartLocationSharing,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingResponse.SerializeToString,
            ),
            'MessageUpdateLocationSharing': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageUpdateLocationSharing,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingResponse.SerializeToString,
            ),
            'MessageEndLocationSharing': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageEndLocationSharing,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingResponse.SerializeToString,
            ),
            'MessageRefresh': grpc.unary_unary_rpc_method_handler(
                    servicer.MessageRefresh,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.MessageCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.MessageCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class MessageCommandService(object):
    """Message
    """

    @staticmethod
    def MessageList(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageList',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageGet(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageSend(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageSend',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageSendWithAttachments(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/olvid.daemon.services.v1.MessageCommandService/MessageSendWithAttachments',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendWithAttachmentsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageReact(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageReact',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageReactResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageUpdateBody(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageUpdateBody',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateBodyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageDelete(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageDelete',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageDeleteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageSendLocation(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageSendLocation',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageSendLocationResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageStartLocationSharing(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageStartLocationSharing',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageStartLocationSharingResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageUpdateLocationSharing(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageUpdateLocationSharing',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageUpdateLocationSharingResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageEndLocationSharing(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageEndLocationSharing',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageEndLocationSharingResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MessageRefresh(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,
            '/olvid.daemon.services.v1.MessageCommandService/MessageRefresh',
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_message__commands__pb2.MessageRefreshResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class AttachmentCommandServiceStub(object):
    """Attachment
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.AttachmentList = channel.unary_stream(
                '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListResponse.FromString,
                _registered_method=True)
        self.AttachmentGet = channel.unary_unary(
                '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetResponse.FromString,
                _registered_method=True)
        self.AttachmentDelete = channel.unary_unary(
                '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentDelete',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteResponse.FromString,
                _registered_method=True)
        self.AttachmentDownload = channel.unary_stream(
                '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentDownload',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadResponse.FromString,
                _registered_method=True)


class AttachmentCommandServiceServicer(object):
    """Attachment
    """

    def AttachmentList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AttachmentGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AttachmentDelete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AttachmentDownload(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_AttachmentCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'AttachmentList': grpc.unary_stream_rpc_method_handler(
                    servicer.AttachmentList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListResponse.SerializeToString,
            ),
            'AttachmentGet': grpc.unary_unary_rpc_method_handler(
                    servicer.AttachmentGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetResponse.SerializeToString,
            ),
            'AttachmentDelete': grpc.unary_unary_rpc_method_handler(
                    servicer.AttachmentDelete,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteResponse.SerializeToString,
            ),
            'AttachmentDownload': grpc.unary_stream_rpc_method_handler(
                    servicer.AttachmentDownload,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.AttachmentCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.AttachmentCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class AttachmentCommandService(object):
    """Attachment
    """

    @staticmethod
    def AttachmentList(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,
            '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentList',
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AttachmentGet(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,
            '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AttachmentDelete(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,
            '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentDelete',
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDeleteResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AttachmentDownload(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,
            '/olvid.daemon.services.v1.AttachmentCommandService/AttachmentDownload',
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_attachment__commands__pb2.AttachmentDownloadResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class StorageCommandServiceStub(object):
    """Storage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.StorageList = channel.unary_stream(
                '/olvid.daemon.services.v1.StorageCommandService/StorageList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListResponse.FromString,
                _registered_method=True)
        self.StorageGet = channel.unary_unary(
                '/olvid.daemon.services.v1.StorageCommandService/StorageGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetResponse.FromString,
                _registered_method=True)
        self.StorageSet = channel.unary_unary(
                '/olvid.daemon.services.v1.StorageCommandService/StorageSet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetResponse.FromString,
                _registered_method=True)
        self.StorageUnset = channel.unary_unary(
                '/olvid.daemon.services.v1.StorageCommandService/StorageUnset',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetResponse.FromString,
                _registered_method=True)


class StorageCommandServiceServicer(object):
    """Storage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

    def StorageList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StorageGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StorageSet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StorageUnset(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_StorageCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'StorageList': grpc.unary_stream_rpc_method_handler(
                    servicer.StorageList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListResponse.SerializeToString,
            ),
            'StorageGet': grpc.unary_unary_rpc_method_handler(
                    servicer.StorageGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetResponse.SerializeToString,
            ),
            'StorageSet': grpc.unary_unary_rpc_method_handler(
                    servicer.StorageSet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetResponse.SerializeToString,
            ),
            'StorageUnset': grpc.unary_unary_rpc_method_handler(
                    servicer.StorageUnset,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.StorageCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.StorageCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class StorageCommandService(object):
    """Storage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

    @staticmethod
    def StorageList(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,
            '/olvid.daemon.services.v1.StorageCommandService/StorageList',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StorageGet(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,
            '/olvid.daemon.services.v1.StorageCommandService/StorageGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StorageSet(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,
            '/olvid.daemon.services.v1.StorageCommandService/StorageSet',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageSetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StorageUnset(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,
            '/olvid.daemon.services.v1.StorageCommandService/StorageUnset',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.StorageUnsetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class DiscussionStorageCommandServiceStub(object):
    """DiscussionStorage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.DiscussionStorageList = channel.unary_stream(
                '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageList',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListResponse.FromString,
                _registered_method=True)
        self.DiscussionStorageGet = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetResponse.FromString,
                _registered_method=True)
        self.DiscussionStorageSet = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageSet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetResponse.FromString,
                _registered_method=True)
        self.DiscussionStorageUnset = channel.unary_unary(
                '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageUnset',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetResponse.FromString,
                _registered_method=True)


class DiscussionStorageCommandServiceServicer(object):
    """DiscussionStorage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

    def DiscussionStorageList(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionStorageGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionStorageSet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DiscussionStorageUnset(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_DiscussionStorageCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'DiscussionStorageList': grpc.unary_stream_rpc_method_handler(
                    servicer.DiscussionStorageList,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListResponse.SerializeToString,
            ),
            'DiscussionStorageGet': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionStorageGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetResponse.SerializeToString,
            ),
            'DiscussionStorageSet': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionStorageSet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetResponse.SerializeToString,
            ),
            'DiscussionStorageUnset': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscussionStorageUnset,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.DiscussionStorageCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.DiscussionStorageCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class DiscussionStorageCommandService(object):
    """DiscussionStorage
    Each client key has its own independent storage space, with a simple key-value system.
    _Storage_ can be seen as a global storage space, compared to _Discussion Storage_ that offers a space associated with a specific discussion.

    Both mechanisms are backup resilient, and will be restored with their associated client key in a backup restoration process.

    Mind that temporary client keys (specified in daemon environment or as command line arguments) do not have an allocated storage space.
    You must create a client in database to use storage commands.
    """

    @staticmethod
    def DiscussionStorageList(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,
            '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageList',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageListResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionStorageGet(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,
            '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionStorageSet(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,
            '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageSet',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageSetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscussionStorageUnset(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,
            '/olvid.daemon.services.v1.DiscussionStorageCommandService/DiscussionStorageUnset',
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_storage__commands__pb2.DiscussionStorageUnsetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class CallCommandServiceStub(object):
    """Call
    Currently daemon cannot handle Olvid calls properly.
    You can be notified on incoming calls, and you can initiate call within discussions or with any contact.
    But we cannot manage audio or video streams, that's why a daemon will always answer any incoming call with a "busy" response.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.CallStartDiscussionCall = channel.unary_unary(
                '/olvid.daemon.services.v1.CallCommandService/CallStartDiscussionCall',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallResponse.FromString,
                _registered_method=True)
        self.CallStartCustomCall = channel.unary_unary(
                '/olvid.daemon.services.v1.CallCommandService/CallStartCustomCall',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallResponse.FromString,
                _registered_method=True)


class CallCommandServiceServicer(object):
    """Call
    Currently daemon cannot handle Olvid calls properly.
    You can be notified on incoming calls, and you can initiate call within discussions or with any contact.
    But we cannot manage audio or video streams, that's why a daemon will always answer any incoming call with a "busy" response.
    """

    def CallStartDiscussionCall(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CallStartCustomCall(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_CallCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CallStartDiscussionCall': grpc.unary_unary_rpc_method_handler(
                    servicer.CallStartDiscussionCall,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallResponse.SerializeToString,
            ),
            'CallStartCustomCall': grpc.unary_unary_rpc_method_handler(
                    servicer.CallStartCustomCall,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.CallCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.CallCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class CallCommandService(object):
    """Call
    Currently daemon cannot handle Olvid calls properly.
    You can be notified on incoming calls, and you can initiate call within discussions or with any contact.
    But we cannot manage audio or video streams, that's why a daemon will always answer any incoming call with a "busy" response.
    """

    @staticmethod
    def CallStartDiscussionCall(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,
            '/olvid.daemon.services.v1.CallCommandService/CallStartDiscussionCall',
            olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartDiscussionCallResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CallStartCustomCall(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,
            '/olvid.daemon.services.v1.CallCommandService/CallStartCustomCall',
            olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_call__commands__pb2.CallStartCustomCallResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)


class SettingsCommandServiceStub(object):
    """Settings
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.SettingsIdentityGet = channel.unary_unary(
                '/olvid.daemon.services.v1.SettingsCommandService/SettingsIdentityGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetResponse.FromString,
                _registered_method=True)
        self.SettingsIdentitySet = channel.unary_unary(
                '/olvid.daemon.services.v1.SettingsCommandService/SettingsIdentitySet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetResponse.FromString,
                _registered_method=True)
        self.SettingsDiscussionGet = channel.unary_unary(
                '/olvid.daemon.services.v1.SettingsCommandService/SettingsDiscussionGet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetResponse.FromString,
                _registered_method=True)
        self.SettingsDiscussionSet = channel.unary_unary(
                '/olvid.daemon.services.v1.SettingsCommandService/SettingsDiscussionSet',
                request_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetRequest.SerializeToString,
                response_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetResponse.FromString,
                _registered_method=True)


class SettingsCommandServiceServicer(object):
    """Settings
    """

    def SettingsIdentityGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SettingsIdentitySet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SettingsDiscussionGet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SettingsDiscussionSet(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_SettingsCommandServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SettingsIdentityGet': grpc.unary_unary_rpc_method_handler(
                    servicer.SettingsIdentityGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetResponse.SerializeToString,
            ),
            'SettingsIdentitySet': grpc.unary_unary_rpc_method_handler(
                    servicer.SettingsIdentitySet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetResponse.SerializeToString,
            ),
            'SettingsDiscussionGet': grpc.unary_unary_rpc_method_handler(
                    servicer.SettingsDiscussionGet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetResponse.SerializeToString,
            ),
            'SettingsDiscussionSet': grpc.unary_unary_rpc_method_handler(
                    servicer.SettingsDiscussionSet,
                    request_deserializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetRequest.FromString,
                    response_serializer=olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'olvid.daemon.services.v1.SettingsCommandService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('olvid.daemon.services.v1.SettingsCommandService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class SettingsCommandService(object):
    """Settings
    """

    @staticmethod
    def SettingsIdentityGet(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,
            '/olvid.daemon.services.v1.SettingsCommandService/SettingsIdentityGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentityGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SettingsIdentitySet(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,
            '/olvid.daemon.services.v1.SettingsCommandService/SettingsIdentitySet',
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsIdentitySetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SettingsDiscussionGet(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,
            '/olvid.daemon.services.v1.SettingsCommandService/SettingsDiscussionGet',
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionGetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SettingsDiscussionSet(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,
            '/olvid.daemon.services.v1.SettingsCommandService/SettingsDiscussionSet',
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetRequest.SerializeToString,
            olvid_dot_daemon_dot_command_dot_v1_dot_settings__commands__pb2.SettingsDiscussionSetResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
