# 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.module_registry.v1 import discover_pb2 as agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2
from agentic_mesh_protocol.module_registry.v1 import registration_pb2 as agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2
from agentic_mesh_protocol.module_registry.v1 import status_pb2 as agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2


class ModuleRegistryServiceStub(object):
    """ModuleRegistryService
    It manages the registration, discovery, and status tracking of modules within a multi-agent system (MAS).
    In the context of MAS, this service allows autonomous agents to register their modules, making their capabilities
    discoverable by other agents. It facilitates dynamic collaboration by enabling agents to find and interact
    with available modules in real-time. Additionally, it ensures that the status of each module is kept up to date,
    supporting the overall adaptability and coordination of the multi-agent environment.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.RegisterModule = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/RegisterModule',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterResponse.FromString,
                _registered_method=True)
        self.DeregisterModule = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/DeregisterModule',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterResponse.FromString,
                _registered_method=True)
        self.DiscoverInfoModule = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/DiscoverInfoModule',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoResponse.FromString,
                _registered_method=True)
        self.DiscoverSearchModule = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/DiscoverSearchModule',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchResponse.FromString,
                _registered_method=True)
        self.GetModuleStatus = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/GetModuleStatus',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.FromString,
                _registered_method=True)
        self.ListModuleStatus = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/ListModuleStatus',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusResponse.FromString,
                _registered_method=True)
        self.GetAllModuleStatus = channel.unary_stream(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/GetAllModuleStatus',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.GetAllModulesStatusRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.FromString,
                _registered_method=True)
        self.UpdateModuleStatus = channel.unary_unary(
                '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/UpdateModuleStatus',
                request_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusRequest.SerializeToString,
                response_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusResponse.FromString,
                _registered_method=True)


class ModuleRegistryServiceServicer(object):
    """ModuleRegistryService
    It manages the registration, discovery, and status tracking of modules within a multi-agent system (MAS).
    In the context of MAS, this service allows autonomous agents to register their modules, making their capabilities
    discoverable by other agents. It facilitates dynamic collaboration by enabling agents to find and interact
    with available modules in real-time. Additionally, it ensures that the status of each module is kept up to date,
    supporting the overall adaptability and coordination of the multi-agent environment.
    """

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

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

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

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

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

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

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

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


def add_ModuleRegistryServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'RegisterModule': grpc.unary_unary_rpc_method_handler(
                    servicer.RegisterModule,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterResponse.SerializeToString,
            ),
            'DeregisterModule': grpc.unary_unary_rpc_method_handler(
                    servicer.DeregisterModule,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterResponse.SerializeToString,
            ),
            'DiscoverInfoModule': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscoverInfoModule,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoResponse.SerializeToString,
            ),
            'DiscoverSearchModule': grpc.unary_unary_rpc_method_handler(
                    servicer.DiscoverSearchModule,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchResponse.SerializeToString,
            ),
            'GetModuleStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetModuleStatus,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.SerializeToString,
            ),
            'ListModuleStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.ListModuleStatus,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusResponse.SerializeToString,
            ),
            'GetAllModuleStatus': grpc.unary_stream_rpc_method_handler(
                    servicer.GetAllModuleStatus,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.GetAllModulesStatusRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.SerializeToString,
            ),
            'UpdateModuleStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateModuleStatus,
                    request_deserializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusRequest.FromString,
                    response_serializer=agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'agentic_mesh_protocol.module_registry.v1.ModuleRegistryService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('agentic_mesh_protocol.module_registry.v1.ModuleRegistryService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class ModuleRegistryService(object):
    """ModuleRegistryService
    It manages the registration, discovery, and status tracking of modules within a multi-agent system (MAS).
    In the context of MAS, this service allows autonomous agents to register their modules, making their capabilities
    discoverable by other agents. It facilitates dynamic collaboration by enabling agents to find and interact
    with available modules in real-time. Additionally, it ensures that the status of each module is kept up to date,
    supporting the overall adaptability and coordination of the multi-agent environment.
    """

    @staticmethod
    def RegisterModule(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.module_registry.v1.ModuleRegistryService/RegisterModule',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.RegisterResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeregisterModule(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.module_registry.v1.ModuleRegistryService/DeregisterModule',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_registration__pb2.DeregisterResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscoverInfoModule(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.module_registry.v1.ModuleRegistryService/DiscoverInfoModule',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DiscoverSearchModule(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.module_registry.v1.ModuleRegistryService/DiscoverSearchModule',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_discover__pb2.DiscoverSearchResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetModuleStatus(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.module_registry.v1.ModuleRegistryService/GetModuleStatus',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListModuleStatus(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.module_registry.v1.ModuleRegistryService/ListModuleStatus',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ListModulesStatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetAllModuleStatus(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,
            '/agentic_mesh_protocol.module_registry.v1.ModuleRegistryService/GetAllModuleStatus',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.GetAllModulesStatusRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.ModuleStatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateModuleStatus(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.module_registry.v1.ModuleRegistryService/UpdateModuleStatus',
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusRequest.SerializeToString,
            agentic__mesh__protocol_dot_module__registry_dot_v1_dot_status__pb2.UpdateStatusResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
