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

class OrganizationManagerStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    GetOrganization: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationResp,
    ]
    GetOrganizationMetrics: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetricsReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetricsResp,
    ]
    GetOrganizationInsights: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationInsightsReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationInsightsResp,
    ]
    SnoozeOrganizationInsight: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.SnoozeOrganizationInsightReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.SnoozeOrganizationInsightResp,
    ]
    GetOrganizationMetadata: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetadataReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetadataResp,
    ]
    """Get org metadata, useful for constructing edit workflows for metadata"""
    SetOrganizationMetadata: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationMetadataReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationMetadataResp,
    ]
    GetUser: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetUserReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetUserResp,
    ]
    """Get a user in an organization, will return NOT_FOUND if the user is eitehr missing or not in an organization"""
    GetOrganizationSubscriptionStatus: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSubscriptionStatusReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSubscriptionStatusResp,
    ]
    GetOrganizationSettings: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSettingsReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSettingsResp,
    ]
    SetOrganizationSettings: grpc.UnaryUnaryMultiCallable[
        prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationSettingsReq,
        prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationSettingsResp,
    ]

class OrganizationManagerServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def GetOrganization(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationResp: ...
    @abc.abstractmethod
    def GetOrganizationMetrics(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetricsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetricsResp: ...
    @abc.abstractmethod
    def GetOrganizationInsights(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationInsightsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationInsightsResp: ...
    @abc.abstractmethod
    def SnoozeOrganizationInsight(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.SnoozeOrganizationInsightReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.SnoozeOrganizationInsightResp: ...
    @abc.abstractmethod
    def GetOrganizationMetadata(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetadataReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationMetadataResp:
        """Get org metadata, useful for constructing edit workflows for metadata"""
    @abc.abstractmethod
    def SetOrganizationMetadata(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationMetadataReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationMetadataResp: ...
    @abc.abstractmethod
    def GetUser(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetUserReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetUserResp:
        """Get a user in an organization, will return NOT_FOUND if the user is eitehr missing or not in an organization"""
    @abc.abstractmethod
    def GetOrganizationSubscriptionStatus(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSubscriptionStatusReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSubscriptionStatusResp: ...
    @abc.abstractmethod
    def GetOrganizationSettings(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSettingsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.GetOrganizationSettingsResp: ...
    @abc.abstractmethod
    def SetOrganizationSettings(
        self,
        request: prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationSettingsReq,
        context: grpc.ServicerContext,
    ) -> prodvana.proto.prodvana.organization.organization_manager_pb2.SetOrganizationSettingsResp: ...

def add_OrganizationManagerServicer_to_server(servicer: OrganizationManagerServicer, server: grpc.Server) -> None: ...
