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

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from modal_proto import task_command_router_pb2 as modal__proto_dot_task__command__router__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.TaskExecPoll = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskExecPoll',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskExecPollRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecPollResponse.FromString,
                )
        self.TaskExecStart = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskExecStart',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStartRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStartResponse.FromString,
                )
        self.TaskExecStdinWrite = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskExecStdinWrite',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteResponse.FromString,
                )
        self.TaskExecStdioRead = channel.unary_stream(
                '/modal.task_command_router.TaskCommandRouter/TaskExecStdioRead',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStdioReadRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStdioReadResponse.FromString,
                )
        self.TaskExecWait = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskExecWait',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskExecWaitRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecWaitResponse.FromString,
                )
        self.TaskMountDirectory = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskMountDirectory',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskMountDirectoryRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.TaskSnapshotDirectory = channel.unary_unary(
                '/modal.task_command_router.TaskCommandRouter/TaskSnapshotDirectory',
                request_serializer=modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryRequest.SerializeToString,
                response_deserializer=modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryResponse.FromString,
                )


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

    def TaskExecPoll(self, request, context):
        """Poll for the exit status of an exec'd command.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskExecStart(self, request, context):
        """Execute a command in the task.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskExecStdinWrite(self, request, context):
        """Write to the stdin stream of an exec'd command.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskExecStdioRead(self, request, context):
        """Get a stream of output from the stdout or stderr stream of an exec'd command.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskExecWait(self, request, context):
        """Wait for an exec'd command to exit and return the exit code.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskMountDirectory(self, request, context):
        """Mount an image at a directory in the container.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TaskSnapshotDirectory(self, request, context):
        """Snapshot a directory with a mounted image, including any local changes, into a new image.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TaskCommandRouterServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'TaskExecPoll': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskExecPoll,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecPollRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskExecPollResponse.SerializeToString,
            ),
            'TaskExecStart': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskExecStart,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStartRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStartResponse.SerializeToString,
            ),
            'TaskExecStdinWrite': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskExecStdinWrite,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteResponse.SerializeToString,
            ),
            'TaskExecStdioRead': grpc.unary_stream_rpc_method_handler(
                    servicer.TaskExecStdioRead,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecStdioReadRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskExecStdioReadResponse.SerializeToString,
            ),
            'TaskExecWait': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskExecWait,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskExecWaitRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskExecWaitResponse.SerializeToString,
            ),
            'TaskMountDirectory': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskMountDirectory,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskMountDirectoryRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'TaskSnapshotDirectory': grpc.unary_unary_rpc_method_handler(
                    servicer.TaskSnapshotDirectory,
                    request_deserializer=modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryRequest.FromString,
                    response_serializer=modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'modal.task_command_router.TaskCommandRouter', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def TaskExecPoll(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, '/modal.task_command_router.TaskCommandRouter/TaskExecPoll',
            modal__proto_dot_task__command__router__pb2.TaskExecPollRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskExecPollResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskExecStart(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, '/modal.task_command_router.TaskCommandRouter/TaskExecStart',
            modal__proto_dot_task__command__router__pb2.TaskExecStartRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskExecStartResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskExecStdinWrite(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, '/modal.task_command_router.TaskCommandRouter/TaskExecStdinWrite',
            modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskExecStdinWriteResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskExecStdioRead(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, '/modal.task_command_router.TaskCommandRouter/TaskExecStdioRead',
            modal__proto_dot_task__command__router__pb2.TaskExecStdioReadRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskExecStdioReadResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskExecWait(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, '/modal.task_command_router.TaskCommandRouter/TaskExecWait',
            modal__proto_dot_task__command__router__pb2.TaskExecWaitRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskExecWaitResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskMountDirectory(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, '/modal.task_command_router.TaskCommandRouter/TaskMountDirectory',
            modal__proto_dot_task__command__router__pb2.TaskMountDirectoryRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TaskSnapshotDirectory(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, '/modal.task_command_router.TaskCommandRouter/TaskSnapshotDirectory',
            modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryRequest.SerializeToString,
            modal__proto_dot_task__command__router__pb2.TaskSnapshotDirectoryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
