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

from prodvana.proto.prodvana.agent import agent_interaction_pb2 as prodvana_dot_agent_dot_agent__interaction__pb2


class AgentInteractionStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.Heartbeat = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/Heartbeat',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatResp.FromString,
                )
        self.ConfirmPushApproval = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/ConfirmPushApproval',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalResp.FromString,
                )
        self.RecordNewUnknownPush = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordNewUnknownPush',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushResp.FromString,
                )
        self.RecordPushStart = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordPushStart',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartResp.FromString,
                )
        self.RecordPushOngoing = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordPushOngoing',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingResp.FromString,
                )
        self.RecordPushComplete = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordPushComplete',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteResp.FromString,
                )
        self.RecordPod = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordPod',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodResp.FromString,
                )
        self.RecordPods = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordPods',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsResp.FromString,
                )
        self.RecordDeployment = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordDeployment',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentResp.FromString,
                )
        self.RecordRollout = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/RecordRollout',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutResp.FromString,
                )
        self.ProxyAPIServer = channel.stream_stream(
                '/prodvana.agent.AgentInteraction/ProxyAPIServer',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerResp.FromString,
                )
        self.ReportDebugInfo = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/ReportDebugInfo',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoResp.FromString,
                )
        self.ReportClusterMetadata = channel.unary_unary(
                '/prodvana.agent.AgentInteraction/ReportClusterMetadata',
                request_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataReq.SerializeToString,
                response_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataResp.FromString,
                )


class AgentInteractionServicer(object):
    """Missing associated documentation comment in .proto file."""

    def Heartbeat(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ConfirmPushApproval(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordNewUnknownPush(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordPushStart(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordPushOngoing(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordPushComplete(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordPod(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordPods(self, request, context):
        """Dump a snapshot of all pods for a service. Can potentially contain multiple services, or all services.
        Guaranteed to contain all pods for one service.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordDeployment(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordRollout(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ProxyAPIServer(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReportDebugInfo(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReportClusterMetadata(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_AgentInteractionServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Heartbeat': grpc.unary_unary_rpc_method_handler(
                    servicer.Heartbeat,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatResp.SerializeToString,
            ),
            'ConfirmPushApproval': grpc.unary_unary_rpc_method_handler(
                    servicer.ConfirmPushApproval,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalResp.SerializeToString,
            ),
            'RecordNewUnknownPush': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordNewUnknownPush,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushResp.SerializeToString,
            ),
            'RecordPushStart': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordPushStart,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartResp.SerializeToString,
            ),
            'RecordPushOngoing': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordPushOngoing,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingResp.SerializeToString,
            ),
            'RecordPushComplete': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordPushComplete,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteResp.SerializeToString,
            ),
            'RecordPod': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordPod,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodResp.SerializeToString,
            ),
            'RecordPods': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordPods,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsResp.SerializeToString,
            ),
            'RecordDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordDeployment,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentResp.SerializeToString,
            ),
            'RecordRollout': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordRollout,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutResp.SerializeToString,
            ),
            'ProxyAPIServer': grpc.stream_stream_rpc_method_handler(
                    servicer.ProxyAPIServer,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerResp.SerializeToString,
            ),
            'ReportDebugInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.ReportDebugInfo,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoResp.SerializeToString,
            ),
            'ReportClusterMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.ReportClusterMetadata,
                    request_deserializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataReq.FromString,
                    response_serializer=prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataResp.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'prodvana.agent.AgentInteraction', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class AgentInteraction(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def Heartbeat(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, '/prodvana.agent.AgentInteraction/Heartbeat',
            prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.HeartbeatResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ConfirmPushApproval(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, '/prodvana.agent.AgentInteraction/ConfirmPushApproval',
            prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.ConfirmPushApprovalResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordNewUnknownPush(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, '/prodvana.agent.AgentInteraction/RecordNewUnknownPush',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordNewUnknownPushResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordPushStart(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, '/prodvana.agent.AgentInteraction/RecordPushStart',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushStartResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordPushOngoing(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, '/prodvana.agent.AgentInteraction/RecordPushOngoing',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushOngoingResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordPushComplete(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, '/prodvana.agent.AgentInteraction/RecordPushComplete',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPushCompleteResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordPod(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, '/prodvana.agent.AgentInteraction/RecordPod',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordPods(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, '/prodvana.agent.AgentInteraction/RecordPods',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordPodsResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordDeployment(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, '/prodvana.agent.AgentInteraction/RecordDeployment',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordDeploymentResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RecordRollout(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, '/prodvana.agent.AgentInteraction/RecordRollout',
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.RecordRolloutResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ProxyAPIServer(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/prodvana.agent.AgentInteraction/ProxyAPIServer',
            prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.ProxyAPIServerResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReportDebugInfo(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, '/prodvana.agent.AgentInteraction/ReportDebugInfo',
            prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.ReportDebugInfoResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReportClusterMetadata(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, '/prodvana.agent.AgentInteraction/ReportClusterMetadata',
            prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataReq.SerializeToString,
            prodvana_dot_agent_dot_agent__interaction__pb2.ReportClusterMetadataResp.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
