# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from nebius.api.nebius.capacity.v1 import resource_advice_service_pb2 as nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2


class ResourceAdviceServiceStub(object):
    """ResourceAdvisorService provides insights into capacity availability for various resources.
    It helps users understand where they can launch instances or allocate storage based on their
    quotas and the current physical buffers in the data centers.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.List = channel.unary_unary(
                '/nebius.capacity.v1.ResourceAdviceService/List',
                request_serializer=nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceRequest.SerializeToString,
                response_deserializer=nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceResponse.FromString,
                )


class ResourceAdviceServiceServicer(object):
    """ResourceAdvisorService provides insights into capacity availability for various resources.
    It helps users understand where they can launch instances or allocate storage based on their
    quotas and the current physical buffers in the data centers.
    """

    def List(self, request, context):
        """Lists resource advice resources.
        Supports filtering by region, resource type, or platform.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ResourceAdviceServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceRequest.FromString,
                    response_serializer=nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'nebius.capacity.v1.ResourceAdviceService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class ResourceAdviceService(object):
    """ResourceAdvisorService provides insights into capacity availability for various resources.
    It helps users understand where they can launch instances or allocate storage based on their
    quotas and the current physical buffers in the data centers.
    """

    @staticmethod
    def List(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/nebius.capacity.v1.ResourceAdviceService/List',
            nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceRequest.SerializeToString,
            nebius_dot_capacity_dot_v1_dot_resource__advice__service__pb2.ListResourceAdviceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
