"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import collections.abc
import grpc
import prodvana.proto.prodvana.managed_resource.manager_pb2

class ResourceManagerStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    ConfigureK8sCluster: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.ConfigureK8sClusterReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.ConfigureK8sClusterResp,
    ]
    GetManagedResource: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.GetManagedResourceReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.GetManagedResourceResp,
    ]
    ListManagedResources: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.ListManagedResourcesReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.ListManagedResourcesResp,
    ]
    GetArchive: grpc.UnaryStreamMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.GetArchiveReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.GetArchiveResp,
    ]
    DeleteManagedResource: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.DeleteManagedResourceReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.DeleteManagedResourceResp,
    ]
    MarkRunDone: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.managed_resource.manager_pb2.MarkRunDoneReq,
        prodvana.proto.prodvana.managed_resource.manager_pb2.MarkRunDoneResp,
    ]
    """TODO(naphat) delete this endpoint once we automate pulumi runs"""

class ResourceManagerServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def ConfigureK8sCluster(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.ConfigureK8sClusterReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.managed_resource.manager_pb2.ConfigureK8sClusterResp: ...
    @abc.abstractmethod
    def GetManagedResource(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.GetManagedResourceReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.managed_resource.manager_pb2.GetManagedResourceResp: ...
    @abc.abstractmethod
    def ListManagedResources(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.ListManagedResourcesReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.managed_resource.manager_pb2.ListManagedResourcesResp: ...
    @abc.abstractmethod
    def GetArchive(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.GetArchiveReq,
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[prodvana.proto.prodvana.managed_resource.manager_pb2.GetArchiveResp]: ...
    @abc.abstractmethod
    def DeleteManagedResource(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.DeleteManagedResourceReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.managed_resource.manager_pb2.DeleteManagedResourceResp: ...
    @abc.abstractmethod
    def MarkRunDone(
        self,
        request: prodvana.proto.prodvana.managed_resource.manager_pb2.MarkRunDoneReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.managed_resource.manager_pb2.MarkRunDoneResp:
        """TODO(naphat) delete this endpoint once we automate pulumi runs"""

def add_ResourceManagerServicer_to_server(servicer: ResourceManagerServicer, server: grpc.Server) -> None: ...
