"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import collections.abc
import grpc
import grpc.aio
import model.model.v1alpha.model_pb2
import typing

_T = typing.TypeVar('_T')

class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta):
    ...

class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext):  # type: ignore
    ...

class ModelPrivateServiceStub:
    """Model service responds to internal access
    ========== Private API ==========
    """

    def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
    ListModelsAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.ListModelsAdminRequest,
        model.model.v1alpha.model_pb2.ListModelsAdminResponse,
    ]
    """ListModelsAdmin method receives a ListModelsAdminRequest message and
    returns a ListModelsAdminResponse
    """
    LookUpModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.LookUpModelAdminRequest,
        model.model.v1alpha.model_pb2.LookUpModelAdminResponse,
    ]
    """LookUpModelAdmin method receives a LookUpModelAdminRequest message and
    returns a LookUpModelAdminResponse
    """
    DeployNamespaceModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployNamespaceModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployNamespaceModelAdminResponse,
    ]
    """DeployNamespaceModelAdmin deploy a model to online state"""
    DeployUserModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployUserModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployUserModelAdminResponse,
    ]
    """DeployUserModelAdmin deploy a model to online state"""
    DeployOrganizationModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployOrganizationModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployOrganizationModelAdminResponse,
    ]
    """DeployOrganizationModelAdmin deploy a model to online state"""
    UndeployUserModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployUserModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployUserModelAdminResponse,
    ]
    """UndeployUserModelAdmin undeploy a model to offline state"""
    UndeployNamespaceModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminResponse,
    ]
    """UndeployNamespaceModelAdmin undeploy a model to offline state"""
    UndeployOrganizationModelAdmin: grpc.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminResponse,
    ]
    """UndeployOrganizationModelAdmin undeploy a model to offline state"""

class ModelPrivateServiceAsyncStub:
    """Model service responds to internal access
    ========== Private API ==========
    """

    ListModelsAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.ListModelsAdminRequest,
        model.model.v1alpha.model_pb2.ListModelsAdminResponse,
    ]
    """ListModelsAdmin method receives a ListModelsAdminRequest message and
    returns a ListModelsAdminResponse
    """
    LookUpModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.LookUpModelAdminRequest,
        model.model.v1alpha.model_pb2.LookUpModelAdminResponse,
    ]
    """LookUpModelAdmin method receives a LookUpModelAdminRequest message and
    returns a LookUpModelAdminResponse
    """
    DeployNamespaceModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployNamespaceModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployNamespaceModelAdminResponse,
    ]
    """DeployNamespaceModelAdmin deploy a model to online state"""
    DeployUserModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployUserModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployUserModelAdminResponse,
    ]
    """DeployUserModelAdmin deploy a model to online state"""
    DeployOrganizationModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.DeployOrganizationModelAdminRequest,
        model.model.v1alpha.model_pb2.DeployOrganizationModelAdminResponse,
    ]
    """DeployOrganizationModelAdmin deploy a model to online state"""
    UndeployUserModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployUserModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployUserModelAdminResponse,
    ]
    """UndeployUserModelAdmin undeploy a model to offline state"""
    UndeployNamespaceModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminResponse,
    ]
    """UndeployNamespaceModelAdmin undeploy a model to offline state"""
    UndeployOrganizationModelAdmin: grpc.aio.UnaryUnaryMultiCallable[
        model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminRequest,
        model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminResponse,
    ]
    """UndeployOrganizationModelAdmin undeploy a model to offline state"""

class ModelPrivateServiceServicer(metaclass=abc.ABCMeta):
    """Model service responds to internal access
    ========== Private API ==========
    """

    @abc.abstractmethod
    def ListModelsAdmin(
        self,
        request: model.model.v1alpha.model_pb2.ListModelsAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.ListModelsAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.ListModelsAdminResponse]]:
        """ListModelsAdmin method receives a ListModelsAdminRequest message and
        returns a ListModelsAdminResponse
        """
    @abc.abstractmethod
    def LookUpModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.LookUpModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.LookUpModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.LookUpModelAdminResponse]]:
        """LookUpModelAdmin method receives a LookUpModelAdminRequest message and
        returns a LookUpModelAdminResponse
        """
    @abc.abstractmethod
    def DeployNamespaceModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.DeployNamespaceModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.DeployNamespaceModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.DeployNamespaceModelAdminResponse]]:
        """DeployNamespaceModelAdmin deploy a model to online state"""
    @abc.abstractmethod
    def DeployUserModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.DeployUserModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.DeployUserModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.DeployUserModelAdminResponse]]:
        """DeployUserModelAdmin deploy a model to online state"""
    @abc.abstractmethod
    def DeployOrganizationModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.DeployOrganizationModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.DeployOrganizationModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.DeployOrganizationModelAdminResponse]]:
        """DeployOrganizationModelAdmin deploy a model to online state"""
    @abc.abstractmethod
    def UndeployUserModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.UndeployUserModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.UndeployUserModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.UndeployUserModelAdminResponse]]:
        """UndeployUserModelAdmin undeploy a model to offline state"""
    @abc.abstractmethod
    def UndeployNamespaceModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.UndeployNamespaceModelAdminResponse]]:
        """UndeployNamespaceModelAdmin undeploy a model to offline state"""
    @abc.abstractmethod
    def UndeployOrganizationModelAdmin(
        self,
        request: model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminResponse, collections.abc.Awaitable[model.model.v1alpha.model_pb2.UndeployOrganizationModelAdminResponse]]:
        """UndeployOrganizationModelAdmin undeploy a model to offline state"""

def add_ModelPrivateServiceServicer_to_server(servicer: ModelPrivateServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
