"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import aserto.authorizer.v2.authorizer_pb2
import grpc

class AuthorizerStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    DecisionTree: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.DecisionTreeRequest,
        aserto.authorizer.v2.authorizer_pb2.DecisionTreeResponse,
    ]
    Is: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.IsRequest,
        aserto.authorizer.v2.authorizer_pb2.IsResponse,
    ]
    Query: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.QueryRequest,
        aserto.authorizer.v2.authorizer_pb2.QueryResponse,
    ]
    Compile: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.CompileRequest,
        aserto.authorizer.v2.authorizer_pb2.CompileResponse,
    ]
    ListPolicies: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.ListPoliciesRequest,
        aserto.authorizer.v2.authorizer_pb2.ListPoliciesResponse,
    ]
    GetPolicy: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.GetPolicyRequest,
        aserto.authorizer.v2.authorizer_pb2.GetPolicyResponse,
    ]
    Info: grpc.UnaryUnaryMultiCallable[
        aserto.authorizer.v2.authorizer_pb2.InfoRequest,
        aserto.authorizer.v2.authorizer_pb2.InfoResponse,
    ]

class AuthorizerServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def DecisionTree(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.DecisionTreeRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.DecisionTreeResponse: ...
    @abc.abstractmethod
    def Is(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.IsRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.IsResponse: ...
    @abc.abstractmethod
    def Query(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.QueryRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.QueryResponse: ...
    @abc.abstractmethod
    def Compile(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.CompileRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.CompileResponse: ...
    @abc.abstractmethod
    def ListPolicies(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.ListPoliciesRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.ListPoliciesResponse: ...
    @abc.abstractmethod
    def GetPolicy(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.GetPolicyRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.GetPolicyResponse: ...
    @abc.abstractmethod
    def Info(
        self,
        request: aserto.authorizer.v2.authorizer_pb2.InfoRequest,
        context: grpc.ServicerContext,
    ) -> aserto.authorizer.v2.authorizer_pb2.InfoResponse: ...

def add_AuthorizerServicer_to_server(servicer: AuthorizerServicer, server: grpc.Server) -> None: ...
