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

from apis.inference.v1 import image_pb2 as apis_dot_inference_dot_v1_dot_image__pb2


class ImageInferenceServiceStub(object):
    """Inference Server GRPC endpoints for images.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.InferImage = channel.unary_unary(
                '/inference.v1.ImageInferenceService/InferImage',
                request_serializer=apis_dot_inference_dot_v1_dot_image__pb2.InferImageRequest.SerializeToString,
                response_deserializer=apis_dot_inference_dot_v1_dot_image__pb2.InferImageResponse.FromString,
                )


class ImageInferenceServiceServicer(object):
    """Inference Server GRPC endpoints for images.
    """

    def InferImage(self, request, context):
        """The InferImage API performs inference using the specified model for one image. Errors are
        indicated by the google.rpc.Status returned for the request. The OK code 
        indicates success and other codes indicate failure.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ImageInferenceServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'InferImage': grpc.unary_unary_rpc_method_handler(
                    servicer.InferImage,
                    request_deserializer=apis_dot_inference_dot_v1_dot_image__pb2.InferImageRequest.FromString,
                    response_serializer=apis_dot_inference_dot_v1_dot_image__pb2.InferImageResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'inference.v1.ImageInferenceService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class ImageInferenceService(object):
    """Inference Server GRPC endpoints for images.
    """

    @staticmethod
    def InferImage(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, '/inference.v1.ImageInferenceService/InferImage',
            apis_dot_inference_dot_v1_dot_image__pb2.InferImageRequest.SerializeToString,
            apis_dot_inference_dot_v1_dot_image__pb2.InferImageResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
