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

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from . import profile_pb2 as profile__pb2


class ProfileStub(object):
    """Plain methods
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.GetProfile = channel.unary_unary(
                '/Profile/GetProfile',
                request_serializer=profile__pb2.ProfileKey.SerializeToString,
                response_deserializer=profile__pb2.GetProfileResponse.FromString,
                )
        self.DeleteProfile = channel.unary_unary(
                '/Profile/DeleteProfile',
                request_serializer=profile__pb2.ProfileKey.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateEmployeeProfile = channel.unary_unary(
                '/Profile/CreateEmployeeProfile',
                request_serializer=profile__pb2.Employee.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.UpdateEmployeeProfile = channel.unary_unary(
                '/Profile/UpdateEmployeeProfile',
                request_serializer=profile__pb2.Employee.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateEmployerProfile = channel.unary_unary(
                '/Profile/CreateEmployerProfile',
                request_serializer=profile__pb2.Employer.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.UpdateEmployerProfile = channel.unary_unary(
                '/Profile/UpdateEmployerProfile',
                request_serializer=profile__pb2.Employer.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetPosition = channel.unary_unary(
                '/Profile/GetPosition',
                request_serializer=profile__pb2.PositionKey.SerializeToString,
                response_deserializer=profile__pb2.Position.FromString,
                )
        self.ListEmployerPositions = channel.unary_stream(
                '/Profile/ListEmployerPositions',
                request_serializer=profile__pb2.ProfileKey.SerializeToString,
                response_deserializer=profile__pb2.Position.FromString,
                )
        self.CreatePosition = channel.unary_unary(
                '/Profile/CreatePosition',
                request_serializer=profile__pb2.CreatePositionRequest.SerializeToString,
                response_deserializer=profile__pb2.PositionKey.FromString,
                )
        self.UpdatePosition = channel.unary_unary(
                '/Profile/UpdatePosition',
                request_serializer=profile__pb2.Position.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.DeletePosition = channel.unary_unary(
                '/Profile/DeletePosition',
                request_serializer=profile__pb2.PositionKey.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )


class ProfileServicer(object):
    """Plain methods
    """

    def GetProfile(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 DeleteProfile(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 CreateEmployeeProfile(self, request, context):
        """Employee related methods

        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateEmployeeProfile(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 CreateEmployerProfile(self, request, context):
        """Employer related methods

        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateEmployerProfile(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 GetPosition(self, request, context):
        """Positions related method

        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEmployerPositions(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 CreatePosition(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 UpdatePosition(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 DeletePosition(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_ProfileServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.GetProfile,
                    request_deserializer=profile__pb2.ProfileKey.FromString,
                    response_serializer=profile__pb2.GetProfileResponse.SerializeToString,
            ),
            'DeleteProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteProfile,
                    request_deserializer=profile__pb2.ProfileKey.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateEmployeeProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEmployeeProfile,
                    request_deserializer=profile__pb2.Employee.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'UpdateEmployeeProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateEmployeeProfile,
                    request_deserializer=profile__pb2.Employee.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateEmployerProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEmployerProfile,
                    request_deserializer=profile__pb2.Employer.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'UpdateEmployerProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateEmployerProfile,
                    request_deserializer=profile__pb2.Employer.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetPosition': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPosition,
                    request_deserializer=profile__pb2.PositionKey.FromString,
                    response_serializer=profile__pb2.Position.SerializeToString,
            ),
            'ListEmployerPositions': grpc.unary_stream_rpc_method_handler(
                    servicer.ListEmployerPositions,
                    request_deserializer=profile__pb2.ProfileKey.FromString,
                    response_serializer=profile__pb2.Position.SerializeToString,
            ),
            'CreatePosition': grpc.unary_unary_rpc_method_handler(
                    servicer.CreatePosition,
                    request_deserializer=profile__pb2.CreatePositionRequest.FromString,
                    response_serializer=profile__pb2.PositionKey.SerializeToString,
            ),
            'UpdatePosition': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdatePosition,
                    request_deserializer=profile__pb2.Position.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'DeletePosition': grpc.unary_unary_rpc_method_handler(
                    servicer.DeletePosition,
                    request_deserializer=profile__pb2.PositionKey.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'Profile', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Profile(object):
    """Plain methods
    """

    @staticmethod
    def GetProfile(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, '/Profile/GetProfile',
            profile__pb2.ProfileKey.SerializeToString,
            profile__pb2.GetProfileResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteProfile(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, '/Profile/DeleteProfile',
            profile__pb2.ProfileKey.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateEmployeeProfile(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, '/Profile/CreateEmployeeProfile',
            profile__pb2.Employee.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateEmployeeProfile(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, '/Profile/UpdateEmployeeProfile',
            profile__pb2.Employee.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateEmployerProfile(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, '/Profile/CreateEmployerProfile',
            profile__pb2.Employer.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateEmployerProfile(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, '/Profile/UpdateEmployerProfile',
            profile__pb2.Employer.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetPosition(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, '/Profile/GetPosition',
            profile__pb2.PositionKey.SerializeToString,
            profile__pb2.Position.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEmployerPositions(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_stream(request, target, '/Profile/ListEmployerPositions',
            profile__pb2.ProfileKey.SerializeToString,
            profile__pb2.Position.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreatePosition(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, '/Profile/CreatePosition',
            profile__pb2.CreatePositionRequest.SerializeToString,
            profile__pb2.PositionKey.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdatePosition(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, '/Profile/UpdatePosition',
            profile__pb2.Position.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeletePosition(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, '/Profile/DeletePosition',
            profile__pb2.PositionKey.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
