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

from . import course_lesson_pb2 as course__lesson_dot_grpc_dot_course__lesson__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.HierarchicalList = channel.unary_unary(
                '/darsman.course_lesson.CategoryController/HierarchicalList',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.CategoryController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.FromString,
                )


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

    def HierarchicalList(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 Retrieve(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_CategoryControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'HierarchicalList': grpc.unary_unary_rpc_method_handler(
                    servicer.HierarchicalList,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.CategoryController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def HierarchicalList(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, '/darsman.course_lesson.CategoryController/HierarchicalList',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.CategoryController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CategoryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.Create = channel.unary_unary(
                '/darsman.course_lesson.ConsultantController/Create',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantResponse.FromString,
                )


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

    def Create(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_ConsultantControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Create': grpc.unary_unary_rpc_method_handler(
                    servicer.Create,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.ConsultantController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def Create(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, '/darsman.course_lesson.ConsultantController/Create',
            course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.ConsultantResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.BulkRetrieve = channel.unary_unary(
                '/darsman.course_lesson.CourseController/BulkRetrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.Comment = channel.unary_unary(
                '/darsman.course_lesson.CourseController/Comment',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
                )
        self.FetchMasterCourses = channel.unary_unary(
                '/darsman.course_lesson.CourseController/FetchMasterCourses',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
                )
        self.Like = channel.unary_unary(
                '/darsman.course_lesson.CourseController/Like',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )
        self.List = channel.unary_unary(
                '/darsman.course_lesson.CourseController/List',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.Rate = channel.unary_unary(
                '/darsman.course_lesson.CourseController/Rate',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.CourseController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveComments = channel.unary_unary(
                '/darsman.course_lesson.CourseController/RetrieveComments',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveRates = channel.unary_unary(
                '/darsman.course_lesson.CourseController/RetrieveRates',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.UnLike = channel.unary_unary(
                '/darsman.course_lesson.CourseController/UnLike',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )


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

    def BulkRetrieve(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 Comment(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 FetchMasterCourses(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 Like(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 List(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 Rate(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 Retrieve(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 RetrieveComments(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 RetrieveRates(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 UnLike(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_CourseControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BulkRetrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.BulkRetrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'Comment': grpc.unary_unary_rpc_method_handler(
                    servicer.Comment,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.SerializeToString,
            ),
            'FetchMasterCourses': grpc.unary_unary_rpc_method_handler(
                    servicer.FetchMasterCourses,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.SerializeToString,
            ),
            'Like': grpc.unary_unary_rpc_method_handler(
                    servicer.Like,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'Rate': grpc.unary_unary_rpc_method_handler(
                    servicer.Rate,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveComments': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveComments,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveRates': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveRates,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'UnLike': grpc.unary_unary_rpc_method_handler(
                    servicer.UnLike,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.CourseController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def BulkRetrieve(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, '/darsman.course_lesson.CourseController/BulkRetrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Comment(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, '/darsman.course_lesson.CourseController/Comment',
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FetchMasterCourses(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, '/darsman.course_lesson.CourseController/FetchMasterCourses',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Like(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, '/darsman.course_lesson.CourseController/Like',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @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, '/darsman.course_lesson.CourseController/List',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Rate(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, '/darsman.course_lesson.CourseController/Rate',
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.CourseController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveComments(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, '/darsman.course_lesson.CourseController/RetrieveComments',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveRates(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, '/darsman.course_lesson.CourseController/RetrieveRates',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UnLike(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, '/darsman.course_lesson.CourseController/UnLike',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.BulkRetrieve = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/BulkRetrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.Comment = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/Comment',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
                )
        self.FetchMasterCourses = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/FetchMasterCourses',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
                )
        self.Like = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/Like',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )
        self.List = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/List',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.Rate = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/Rate',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveComments = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/RetrieveComments',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveRates = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/RetrieveRates',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.UnLike = channel.unary_unary(
                '/darsman.course_lesson.ExpertCourseController/UnLike',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )


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

    def BulkRetrieve(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 Comment(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 FetchMasterCourses(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 Like(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 List(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 Rate(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 Retrieve(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 RetrieveComments(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 RetrieveRates(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 UnLike(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_ExpertCourseControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BulkRetrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.BulkRetrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'Comment': grpc.unary_unary_rpc_method_handler(
                    servicer.Comment,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.SerializeToString,
            ),
            'FetchMasterCourses': grpc.unary_unary_rpc_method_handler(
                    servicer.FetchMasterCourses,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.SerializeToString,
            ),
            'Like': grpc.unary_unary_rpc_method_handler(
                    servicer.Like,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'Rate': grpc.unary_unary_rpc_method_handler(
                    servicer.Rate,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveComments': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveComments,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveRates': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveRates,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'UnLike': grpc.unary_unary_rpc_method_handler(
                    servicer.UnLike,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.ExpertCourseController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def BulkRetrieve(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, '/darsman.course_lesson.ExpertCourseController/BulkRetrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Comment(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, '/darsman.course_lesson.ExpertCourseController/Comment',
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FetchMasterCourses(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, '/darsman.course_lesson.ExpertCourseController/FetchMasterCourses',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Like(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, '/darsman.course_lesson.ExpertCourseController/Like',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @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, '/darsman.course_lesson.ExpertCourseController/List',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Rate(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, '/darsman.course_lesson.ExpertCourseController/Rate',
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.ExpertCourseController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveComments(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, '/darsman.course_lesson.ExpertCourseController/RetrieveComments',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveRates(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, '/darsman.course_lesson.ExpertCourseController/RetrieveRates',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UnLike(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, '/darsman.course_lesson.ExpertCourseController/UnLike',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.GeneralController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralResponse.FromString,
                )


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

    def Retrieve(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_GeneralControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.GeneralController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.GeneralController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.GeneralResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.BulkRetrieve = channel.unary_unary(
                '/darsman.course_lesson.LessonController/BulkRetrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonBulkRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.Comment = channel.unary_unary(
                '/darsman.course_lesson.LessonController/Comment',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
                )
        self.List = channel.unary_unary(
                '/darsman.course_lesson.LessonController/List',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonListRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.LessonController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
                )
        self.RetrieveComments = channel.unary_unary(
                '/darsman.course_lesson.LessonController/RetrieveComments',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveCommentsRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
                )


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

    def BulkRetrieve(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 Comment(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 List(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 Retrieve(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 RetrieveComments(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_LessonControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BulkRetrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.BulkRetrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonBulkRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'Comment': grpc.unary_unary_rpc_method_handler(
                    servicer.Comment,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonListRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.SerializeToString,
            ),
            'RetrieveComments': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveComments,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveCommentsRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.LessonController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def BulkRetrieve(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, '/darsman.course_lesson.LessonController/BulkRetrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonBulkRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Comment(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, '/darsman.course_lesson.LessonController/Comment',
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @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, '/darsman.course_lesson.LessonController/List',
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonListRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.LessonController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveComments(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, '/darsman.course_lesson.LessonController/RetrieveComments',
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonRetrieveCommentsRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.LessonResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.BulkRetrieve = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/BulkRetrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.Comment = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/Comment',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
                )
        self.CreateNotification = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/CreateNotification',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseNotificationRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.NotificationResponse.FromString,
                )
        self.CreatePreRegistration = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/CreatePreRegistration',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCoursePreRegistrationRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PreRegistrationResponse.FromString,
                )
        self.FetchMasterCourses = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/FetchMasterCourses',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
                )
        self.Like = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/Like',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )
        self.List = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/List',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.Rate = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/Rate',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveComments = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/RetrieveComments',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveInstallmentTerm = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/RetrieveInstallmentTerm',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.InstallmentTermRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.RetrieveRates = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/RetrieveRates',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
                )
        self.RetrieveState = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/RetrieveState',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseStateRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.StateResponse.FromString,
                )
        self.UnLike = channel.unary_unary(
                '/darsman.course_lesson.MasterCourseController/UnLike',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
                )


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

    def BulkRetrieve(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 Comment(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 CreateNotification(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 CreatePreRegistration(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 FetchMasterCourses(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 Like(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 List(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 Rate(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 Retrieve(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 RetrieveComments(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 RetrieveInstallmentTerm(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 RetrieveRates(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 RetrieveState(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 UnLike(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_MasterCourseControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BulkRetrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.BulkRetrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'Comment': grpc.unary_unary_rpc_method_handler(
                    servicer.Comment,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.SerializeToString,
            ),
            'CreateNotification': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateNotification,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseNotificationRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.NotificationResponse.SerializeToString,
            ),
            'CreatePreRegistration': grpc.unary_unary_rpc_method_handler(
                    servicer.CreatePreRegistration,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCoursePreRegistrationRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PreRegistrationResponse.SerializeToString,
            ),
            'FetchMasterCourses': grpc.unary_unary_rpc_method_handler(
                    servicer.FetchMasterCourses,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.SerializeToString,
            ),
            'Like': grpc.unary_unary_rpc_method_handler(
                    servicer.Like,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'Rate': grpc.unary_unary_rpc_method_handler(
                    servicer.Rate,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveComments': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveComments,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveInstallmentTerm': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveInstallmentTerm,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.InstallmentTermRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'RetrieveRates': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveRates,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.SerializeToString,
            ),
            'RetrieveState': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveState,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseStateRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.StateResponse.SerializeToString,
            ),
            'UnLike': grpc.unary_unary_rpc_method_handler(
                    servicer.UnLike,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.MasterCourseController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def BulkRetrieve(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, '/darsman.course_lesson.MasterCourseController/BulkRetrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseBulkRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Comment(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, '/darsman.course_lesson.MasterCourseController/Comment',
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.AddCommentResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateNotification(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, '/darsman.course_lesson.MasterCourseController/CreateNotification',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseNotificationRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.NotificationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreatePreRegistration(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, '/darsman.course_lesson.MasterCourseController/CreatePreRegistration',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCoursePreRegistrationRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.PreRegistrationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FetchMasterCourses(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, '/darsman.course_lesson.MasterCourseController/FetchMasterCourses',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Like(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, '/darsman.course_lesson.MasterCourseController/Like',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @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, '/darsman.course_lesson.MasterCourseController/List',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseListRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Rate(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, '/darsman.course_lesson.MasterCourseController/Rate',
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.RateResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.MasterCourseController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveComments(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, '/darsman.course_lesson.MasterCourseController/RetrieveComments',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveCommentsRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveInstallmentTerm(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, '/darsman.course_lesson.MasterCourseController/RetrieveInstallmentTerm',
            course__lesson_dot_grpc_dot_course__lesson__pb2.InstallmentTermRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveRates(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, '/darsman.course_lesson.MasterCourseController/RetrieveRates',
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseRetrieveRatesRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.CourseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RetrieveState(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, '/darsman.course_lesson.MasterCourseController/RetrieveState',
            course__lesson_dot_grpc_dot_course__lesson__pb2.MasterCourseStateRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.StateResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UnLike(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, '/darsman.course_lesson.MasterCourseController/UnLike',
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TriggerLikeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.BulkRetrieve = channel.unary_unary(
                '/darsman.course_lesson.PackageController/BulkRetrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageBulkRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
                )
        self.List = channel.unary_unary(
                '/darsman.course_lesson.PackageController/List',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageListRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.FromString,
                )
        self.Retrieve = channel.unary_unary(
                '/darsman.course_lesson.PackageController/Retrieve',
                request_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageRetrieveRequest.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.FromString,
                )


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

    def BulkRetrieve(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 List(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 Retrieve(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_PackageControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BulkRetrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.BulkRetrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageBulkRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.Response.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageListRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.SerializeToString,
            ),
            'Retrieve': grpc.unary_unary_rpc_method_handler(
                    servicer.Retrieve,
                    request_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageRetrieveRequest.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.PackageController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def BulkRetrieve(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, '/darsman.course_lesson.PackageController/BulkRetrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.PackageBulkRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.Response.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @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, '/darsman.course_lesson.PackageController/List',
            course__lesson_dot_grpc_dot_course__lesson__pb2.PackageListRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Retrieve(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, '/darsman.course_lesson.PackageController/Retrieve',
            course__lesson_dot_grpc_dot_course__lesson__pb2.PackageRetrieveRequest.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.PackageResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.RetrieveCurrent = channel.unary_unary(
                '/darsman.course_lesson.TopBannerController/RetrieveCurrent',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TopBannerResponse.FromString,
                )


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

    def RetrieveCurrent(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_TopBannerControllerServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'RetrieveCurrent': grpc.unary_unary_rpc_method_handler(
                    servicer.RetrieveCurrent,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=course__lesson_dot_grpc_dot_course__lesson__pb2.TopBannerResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'darsman.course_lesson.TopBannerController', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def RetrieveCurrent(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, '/darsman.course_lesson.TopBannerController/RetrieveCurrent',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            course__lesson_dot_grpc_dot_course__lesson__pb2.TopBannerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
