"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright (C) 2024 Bloomberg LP

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 <http://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
import abc
import buildgrid._protos.buildgrid.v2.introspection_pb2
import grpc

class IntrospectionStub:
    """BuildGrid's Introspection service is used to query the state of
    BuildGrid's internals, and obtain details on available functionality.
    """

    def __init__(self, channel: grpc.Channel) -> None: ...
    ListWorkers: grpc.UnaryUnaryMultiCallable[
        buildgrid._protos.buildgrid.v2.introspection_pb2.ListWorkersRequest,
        buildgrid._protos.buildgrid.v2.introspection_pb2.ListWorkersResponse,
    ]
    """Query the list of workers known to a specific BuildGrid instance

    Errors:

      * `INVALID_ARGUMENT`: When the provided instance name doesn't exist
    """
    GetOperationFilters: grpc.UnaryUnaryMultiCallable[
        buildgrid._protos.buildgrid.v2.introspection_pb2.GetOperationFiltersRequest,
        buildgrid._protos.buildgrid.v2.introspection_pb2.OperationFilters,
    ]
    """Get the list of valid filters for use in ListOperations requests
    for a specific BuildGrid instance

    Errors:

      * `INVALID_ARGUMENT`: When the provided instance name doesn't exist
    """

class IntrospectionServicer(metaclass=abc.ABCMeta):
    """BuildGrid's Introspection service is used to query the state of
    BuildGrid's internals, and obtain details on available functionality.
    """

    @abc.abstractmethod
    def ListWorkers(
        self,
        request: buildgrid._protos.buildgrid.v2.introspection_pb2.ListWorkersRequest,
        context: grpc.ServicerContext,
    ) -> buildgrid._protos.buildgrid.v2.introspection_pb2.ListWorkersResponse:
        """Query the list of workers known to a specific BuildGrid instance

        Errors:

          * `INVALID_ARGUMENT`: When the provided instance name doesn't exist
        """
    @abc.abstractmethod
    def GetOperationFilters(
        self,
        request: buildgrid._protos.buildgrid.v2.introspection_pb2.GetOperationFiltersRequest,
        context: grpc.ServicerContext,
    ) -> buildgrid._protos.buildgrid.v2.introspection_pb2.OperationFilters:
        """Get the list of valid filters for use in ListOperations requests
        for a specific BuildGrid instance

        Errors:

          * `INVALID_ARGUMENT`: When the provided instance name doesn't exist
        """

def add_IntrospectionServicer_to_server(servicer: IntrospectionServicer, server: grpc.Server) -> None: ...
