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

from _qwak_proto.qwak.integration import integration_service_pb2 as qwak_dot_integration_dot_integration__service__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.CreateIntegration = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/CreateIntegration',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationResponse.FromString,
                )
        self.GetIntegration = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/GetIntegration',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationResponse.FromString,
                )
        self.ListIntegrations = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/ListIntegrations',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.ListIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.ListIntegrationsResponse.FromString,
                )
        self.UpdateIntegration = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/UpdateIntegration',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationResponse.FromString,
                )
        self.DeleteIntegration = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/DeleteIntegration',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationResponse.FromString,
                )
        self.ValidateIntegration = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/ValidateIntegration',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationResponse.FromString,
                )
        self.GetIntegrationOptions = channel.unary_unary(
                '/qwak.integration.management.IntegrationManagementService/GetIntegrationOptions',
                request_serializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsRequest.SerializeToString,
                response_deserializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsResponse.FromString,
                )


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

    def CreateIntegration(self, request, context):
        """Create a new integration in account level
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetIntegration(self, request, context):
        """Get integration by id
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListIntegrations(self, request, context):
        """List Integrations for account
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateIntegration(self, request, context):
        """Update Integration by id
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteIntegration(self, request, context):
        """Delete Integration by id
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ValidateIntegration(self, request, context):
        """Validate a integration details before creating one.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetIntegrationOptions(self, request, context):
        """Get Integrations additional options
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_IntegrationManagementServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateIntegration': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateIntegration,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationResponse.SerializeToString,
            ),
            'GetIntegration': grpc.unary_unary_rpc_method_handler(
                    servicer.GetIntegration,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationResponse.SerializeToString,
            ),
            'ListIntegrations': grpc.unary_unary_rpc_method_handler(
                    servicer.ListIntegrations,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.ListIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.ListIntegrationsResponse.SerializeToString,
            ),
            'UpdateIntegration': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateIntegration,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationResponse.SerializeToString,
            ),
            'DeleteIntegration': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteIntegration,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationResponse.SerializeToString,
            ),
            'ValidateIntegration': grpc.unary_unary_rpc_method_handler(
                    servicer.ValidateIntegration,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationResponse.SerializeToString,
            ),
            'GetIntegrationOptions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetIntegrationOptions,
                    request_deserializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsRequest.FromString,
                    response_serializer=qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'qwak.integration.management.IntegrationManagementService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def CreateIntegration(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, '/qwak.integration.management.IntegrationManagementService/CreateIntegration',
            qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.CreateIntegrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetIntegration(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, '/qwak.integration.management.IntegrationManagementService/GetIntegration',
            qwak_dot_integration_dot_integration__service__pb2.GetIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.GetIntegrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListIntegrations(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, '/qwak.integration.management.IntegrationManagementService/ListIntegrations',
            qwak_dot_integration_dot_integration__service__pb2.ListIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.ListIntegrationsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateIntegration(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, '/qwak.integration.management.IntegrationManagementService/UpdateIntegration',
            qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.UpdateIntegrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteIntegration(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, '/qwak.integration.management.IntegrationManagementService/DeleteIntegration',
            qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.DeleteIntegrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ValidateIntegration(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, '/qwak.integration.management.IntegrationManagementService/ValidateIntegration',
            qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.ValidateIntegrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetIntegrationOptions(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, '/qwak.integration.management.IntegrationManagementService/GetIntegrationOptions',
            qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsRequest.SerializeToString,
            qwak_dot_integration_dot_integration__service__pb2.GetIntegrationOptionsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
