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

from internal import quicsep_pb2 as internal_dot_quicsep__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.Capabilities = channel.unary_unary(
                '/quipsec.v1.KmsQkdmCommunicationService/Capabilities',
                request_serializer=internal_dot_quicsep__pb2.CapabilitiesRequest.SerializeToString,
                response_deserializer=internal_dot_quicsep__pb2.CapabilitiesResponse.FromString,
                )
        self.PushKeys = channel.unary_unary(
                '/quipsec.v1.KmsQkdmCommunicationService/PushKeys',
                request_serializer=internal_dot_quicsep__pb2.PushKeysRequest.SerializeToString,
                response_deserializer=internal_dot_quicsep__pb2.PushKeysResponse.FromString,
                )
        self.QkdmMetadata = channel.unary_unary(
                '/quipsec.v1.KmsQkdmCommunicationService/QkdmMetadata',
                request_serializer=internal_dot_quicsep__pb2.QkdmMetadataRequest.SerializeToString,
                response_deserializer=internal_dot_quicsep__pb2.QkdmMetadataResponse.FromString,
                )
        self.ShutdownNotification = channel.unary_unary(
                '/quipsec.v1.KmsQkdmCommunicationService/ShutdownNotification',
                request_serializer=internal_dot_quicsep__pb2.ShutdownNotificationRequest.SerializeToString,
                response_deserializer=internal_dot_quicsep__pb2.ShutdownNotificationResponse.FromString,
                )


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

    def Capabilities(self, request, context):
        """Initial information about the QKDM.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PushKeys(self, request, context):
        """NOTE: A stream could also be considered
        Push of keys from the QKDM to KMS in irregular intervals.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def QkdmMetadata(self, request, context):
        """Statistics and information about the QKDM.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ShutdownNotification(self, request, context):
        """Notification for the KMS on QKDM shutdown.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_KmsQkdmCommunicationServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Capabilities': grpc.unary_unary_rpc_method_handler(
                    servicer.Capabilities,
                    request_deserializer=internal_dot_quicsep__pb2.CapabilitiesRequest.FromString,
                    response_serializer=internal_dot_quicsep__pb2.CapabilitiesResponse.SerializeToString,
            ),
            'PushKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.PushKeys,
                    request_deserializer=internal_dot_quicsep__pb2.PushKeysRequest.FromString,
                    response_serializer=internal_dot_quicsep__pb2.PushKeysResponse.SerializeToString,
            ),
            'QkdmMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.QkdmMetadata,
                    request_deserializer=internal_dot_quicsep__pb2.QkdmMetadataRequest.FromString,
                    response_serializer=internal_dot_quicsep__pb2.QkdmMetadataResponse.SerializeToString,
            ),
            'ShutdownNotification': grpc.unary_unary_rpc_method_handler(
                    servicer.ShutdownNotification,
                    request_deserializer=internal_dot_quicsep__pb2.ShutdownNotificationRequest.FromString,
                    response_serializer=internal_dot_quicsep__pb2.ShutdownNotificationResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'quipsec.v1.KmsQkdmCommunicationService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def Capabilities(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, '/quipsec.v1.KmsQkdmCommunicationService/Capabilities',
            internal_dot_quicsep__pb2.CapabilitiesRequest.SerializeToString,
            internal_dot_quicsep__pb2.CapabilitiesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PushKeys(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, '/quipsec.v1.KmsQkdmCommunicationService/PushKeys',
            internal_dot_quicsep__pb2.PushKeysRequest.SerializeToString,
            internal_dot_quicsep__pb2.PushKeysResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def QkdmMetadata(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, '/quipsec.v1.KmsQkdmCommunicationService/QkdmMetadata',
            internal_dot_quicsep__pb2.QkdmMetadataRequest.SerializeToString,
            internal_dot_quicsep__pb2.QkdmMetadataResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ShutdownNotification(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, '/quipsec.v1.KmsQkdmCommunicationService/ShutdownNotification',
            internal_dot_quicsep__pb2.ShutdownNotificationRequest.SerializeToString,
            internal_dot_quicsep__pb2.ShutdownNotificationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)