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

class ApplicationManagerStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    ConfigureApplication: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationReq,
        prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationResp,
    ]
    ValidateConfigureApplication: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationReq,
        prodvana.proto.prodvana.application.application_manager_pb2.ValidateConfigureApplicationResp,
    ]
    ListApplications: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.ListApplicationsReq,
        prodvana.proto.prodvana.application.application_manager_pb2.ListApplicationsResp,
    ]
    GetApplicationConfig: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationConfigReq,
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationConfigResp,
    ]
    GetApplication: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationReq,
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationResp,
    ]
    DeleteApplication: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.DeleteApplicationReq,
        prodvana.proto.prodvana.application.application_manager_pb2.DeleteApplicationResp,
    ]
    GetApplicationMetrics: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetricsReq,
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetricsResp,
    ]
    GetApplicationInsights: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationInsightsReq,
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationInsightsResp,
    ]
    SnoozeApplicationInsight: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.SnoozeApplicationInsightReq,
        prodvana.proto.prodvana.application.application_manager_pb2.SnoozeApplicationInsightResp,
    ]
    GetApplicationMetadata: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetadataReq,
        prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetadataResp,
    ]
    """Get application metadata, useful for constructing edit workflows for metadata"""
    SetApplicationMetadata: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.application.application_manager_pb2.SetApplicationMetadataReq,
        prodvana.proto.prodvana.application.application_manager_pb2.SetApplicationMetadataResp,
    ]

class ApplicationManagerServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def ConfigureApplication(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationResp: ...
    @abc.abstractmethod
    def ValidateConfigureApplication(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.ConfigureApplicationReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.ValidateConfigureApplicationResp: ...
    @abc.abstractmethod
    def ListApplications(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.ListApplicationsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.ListApplicationsResp: ...
    @abc.abstractmethod
    def GetApplicationConfig(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationConfigReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationConfigResp: ...
    @abc.abstractmethod
    def GetApplication(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationResp: ...
    @abc.abstractmethod
    def DeleteApplication(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.DeleteApplicationReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.DeleteApplicationResp: ...
    @abc.abstractmethod
    def GetApplicationMetrics(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetricsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetricsResp: ...
    @abc.abstractmethod
    def GetApplicationInsights(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationInsightsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationInsightsResp: ...
    @abc.abstractmethod
    def SnoozeApplicationInsight(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.SnoozeApplicationInsightReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.SnoozeApplicationInsightResp: ...
    @abc.abstractmethod
    def GetApplicationMetadata(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetadataReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.GetApplicationMetadataResp:
        """Get application metadata, useful for constructing edit workflows for metadata"""
    @abc.abstractmethod
    def SetApplicationMetadata(
        self,
        request: prodvana.proto.prodvana.application.application_manager_pb2.SetApplicationMetadataReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.application.application_manager_pb2.SetApplicationMetadataResp: ...

def add_ApplicationManagerServicer_to_server(servicer: ApplicationManagerServicer, server: grpc.Server) -> None: ...
