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

from agentic_mesh_protocol.filesystem.v1 import filesystem_pb2 as agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2


class FilesystemServiceStub(object):
    """FilesystemService provides comprehensive file management capabilities including
    upload, retrieval, update, and deletion operations with metadata support,
    filtering, and pagination.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.UploadFiles = channel.unary_unary(
                '/agentic_mesh_protocol.filesystem.v1.FilesystemService/UploadFiles',
                request_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesResponse.FromString,
                _registered_method=True)
        self.GetFile = channel.unary_unary(
                '/agentic_mesh_protocol.filesystem.v1.FilesystemService/GetFile',
                request_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileResponse.FromString,
                _registered_method=True)
        self.GetFiles = channel.unary_unary(
                '/agentic_mesh_protocol.filesystem.v1.FilesystemService/GetFiles',
                request_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesResponse.FromString,
                _registered_method=True)
        self.UpdateFile = channel.unary_unary(
                '/agentic_mesh_protocol.filesystem.v1.FilesystemService/UpdateFile',
                request_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileResponse.FromString,
                _registered_method=True)
        self.DeleteFiles = channel.unary_unary(
                '/agentic_mesh_protocol.filesystem.v1.FilesystemService/DeleteFiles',
                request_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesResponse.FromString,
                _registered_method=True)


class FilesystemServiceServicer(object):
    """FilesystemService provides comprehensive file management capabilities including
    upload, retrieval, update, and deletion operations with metadata support,
    filtering, and pagination.
    """

    def UploadFiles(self, request, context):
        """UploadFiles allows batch uploading of files with validation and
        error handling for each individual file. Files are processed
        atomically - if one fails, others may still succeed.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFile(self, request, context):
        """GetFile fetches detailed information about a single file,
        with optional content inclusion. Supports lookup by either
        unique ID or name within a context.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFiles(self, request, context):
        """GetFiles provides efficient retrieval of multiple files using
        file IDs, file names, or path prefix, with support for
        pagination for large result sets, optional content inclusion,
        and total count of matching files.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateFile(self, request, context):
        """UpdateFile allows updating various aspects of a file including
        renaming files, updating content and content type, modifying metadata,
        and creating new versions.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteFiles(self, request, context):
        """DeleteFiles supports batch deletion of files with options for
        soft deletion (marking as deleted), permanent deletion,
        force deletion of files in use, and individual error reporting per file.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_FilesystemServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'UploadFiles': grpc.unary_unary_rpc_method_handler(
                    servicer.UploadFiles,
                    request_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesResponse.SerializeToString,
            ),
            'GetFile': grpc.unary_unary_rpc_method_handler(
                    servicer.GetFile,
                    request_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileResponse.SerializeToString,
            ),
            'GetFiles': grpc.unary_unary_rpc_method_handler(
                    servicer.GetFiles,
                    request_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesResponse.SerializeToString,
            ),
            'UpdateFile': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateFile,
                    request_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileResponse.SerializeToString,
            ),
            'DeleteFiles': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteFiles,
                    request_deserializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'agentic_mesh_protocol.filesystem.v1.FilesystemService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('agentic_mesh_protocol.filesystem.v1.FilesystemService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class FilesystemService(object):
    """FilesystemService provides comprehensive file management capabilities including
    upload, retrieval, update, and deletion operations with metadata support,
    filtering, and pagination.
    """

    @staticmethod
    def UploadFiles(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,
            '/agentic_mesh_protocol.filesystem.v1.FilesystemService/UploadFiles',
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesRequest.SerializeToString,
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UploadFilesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetFile(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,
            '/agentic_mesh_protocol.filesystem.v1.FilesystemService/GetFile',
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileRequest.SerializeToString,
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetFiles(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,
            '/agentic_mesh_protocol.filesystem.v1.FilesystemService/GetFiles',
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesRequest.SerializeToString,
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.GetFilesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateFile(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,
            '/agentic_mesh_protocol.filesystem.v1.FilesystemService/UpdateFile',
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileRequest.SerializeToString,
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.UpdateFileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteFiles(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,
            '/agentic_mesh_protocol.filesystem.v1.FilesystemService/DeleteFiles',
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesRequest.SerializeToString,
            agentic__mesh__protocol_dot_filesystem_dot_v1_dot_filesystem__pb2.DeleteFilesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
