"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import collections.abc
import grpc
import grpc.aio
import model.controller.v1alpha.controller_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 ControllerPrivateServiceStub:
    """Controller service responds to incoming controller requests"""

    def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
    Liveness: grpc.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.LivenessRequest,
        model.controller.v1alpha.controller_pb2.LivenessResponse,
    ]
    """Liveness method receives a LivenessRequest message and returns a
    LivenessResponse message.
    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    Readiness: grpc.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.ReadinessRequest,
        model.controller.v1alpha.controller_pb2.ReadinessResponse,
    ]
    """Readiness method receives a ReadinessRequest message and returns a
    ReadinessResponse message.
    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    GetResource: grpc.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.GetResourceRequest,
        model.controller.v1alpha.controller_pb2.GetResourceResponse,
    ]
    """GetResource method receives a GetResourceRequest message
    and returns a GetResourceResponse
    """
    UpdateResource: grpc.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.UpdateResourceRequest,
        model.controller.v1alpha.controller_pb2.UpdateResourceResponse,
    ]
    """UpdateResource method receives a UpdateResourceRequest message
    and returns a UpdateResourceResponse
    """
    DeleteResource: grpc.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.DeleteResourceRequest,
        model.controller.v1alpha.controller_pb2.DeleteResourceResponse,
    ]
    """DeleteResource method receives a DeleteResourceRequest message
    and returns a DeleteResourceResponse
    """

class ControllerPrivateServiceAsyncStub:
    """Controller service responds to incoming controller requests"""

    Liveness: grpc.aio.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.LivenessRequest,
        model.controller.v1alpha.controller_pb2.LivenessResponse,
    ]
    """Liveness method receives a LivenessRequest message and returns a
    LivenessResponse message.
    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    Readiness: grpc.aio.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.ReadinessRequest,
        model.controller.v1alpha.controller_pb2.ReadinessResponse,
    ]
    """Readiness method receives a ReadinessRequest message and returns a
    ReadinessResponse message.
    See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
    """
    GetResource: grpc.aio.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.GetResourceRequest,
        model.controller.v1alpha.controller_pb2.GetResourceResponse,
    ]
    """GetResource method receives a GetResourceRequest message
    and returns a GetResourceResponse
    """
    UpdateResource: grpc.aio.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.UpdateResourceRequest,
        model.controller.v1alpha.controller_pb2.UpdateResourceResponse,
    ]
    """UpdateResource method receives a UpdateResourceRequest message
    and returns a UpdateResourceResponse
    """
    DeleteResource: grpc.aio.UnaryUnaryMultiCallable[
        model.controller.v1alpha.controller_pb2.DeleteResourceRequest,
        model.controller.v1alpha.controller_pb2.DeleteResourceResponse,
    ]
    """DeleteResource method receives a DeleteResourceRequest message
    and returns a DeleteResourceResponse
    """

class ControllerPrivateServiceServicer(metaclass=abc.ABCMeta):
    """Controller service responds to incoming controller requests"""

    @abc.abstractmethod
    def Liveness(
        self,
        request: model.controller.v1alpha.controller_pb2.LivenessRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.controller.v1alpha.controller_pb2.LivenessResponse, collections.abc.Awaitable[model.controller.v1alpha.controller_pb2.LivenessResponse]]:
        """Liveness method receives a LivenessRequest message and returns a
        LivenessResponse message.
        See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
        """
    @abc.abstractmethod
    def Readiness(
        self,
        request: model.controller.v1alpha.controller_pb2.ReadinessRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.controller.v1alpha.controller_pb2.ReadinessResponse, collections.abc.Awaitable[model.controller.v1alpha.controller_pb2.ReadinessResponse]]:
        """Readiness method receives a ReadinessRequest message and returns a
        ReadinessResponse message.
        See https://github.com/grpc/grpc/blob/master/doc/health-checking.md
        """
    @abc.abstractmethod
    def GetResource(
        self,
        request: model.controller.v1alpha.controller_pb2.GetResourceRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.controller.v1alpha.controller_pb2.GetResourceResponse, collections.abc.Awaitable[model.controller.v1alpha.controller_pb2.GetResourceResponse]]:
        """GetResource method receives a GetResourceRequest message
        and returns a GetResourceResponse
        """
    @abc.abstractmethod
    def UpdateResource(
        self,
        request: model.controller.v1alpha.controller_pb2.UpdateResourceRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.controller.v1alpha.controller_pb2.UpdateResourceResponse, collections.abc.Awaitable[model.controller.v1alpha.controller_pb2.UpdateResourceResponse]]:
        """UpdateResource method receives a UpdateResourceRequest message
        and returns a UpdateResourceResponse
        """
    @abc.abstractmethod
    def DeleteResource(
        self,
        request: model.controller.v1alpha.controller_pb2.DeleteResourceRequest,
        context: _ServicerContext,
    ) -> typing.Union[model.controller.v1alpha.controller_pb2.DeleteResourceResponse, collections.abc.Awaitable[model.controller.v1alpha.controller_pb2.DeleteResourceResponse]]:
        """DeleteResource method receives a DeleteResourceRequest message
        and returns a DeleteResourceResponse
        """

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