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

from . import department_pb2 as department__pb2


class DepartmentInterfaceStub(object):
    """Departments
    Each show usually has a few different departments.  Lighting,
    Animation, FX, Hair, and Cloth are the most common. The default
    department is generally the "Unknown" department. Department names
    must be chosen from a list of allowed department names which are
    setup with the AdminStatic interface. This makes the data much more
    consistent when doing reports by department which is important because
    department names are used for production reports.

    Departments get created automatically when the department name property
    is set on a group.

    Using departments, its possible to add shot based cue priorities.  These
    priorities, known as "tasks", can be Track-It managed, or manually
    entered. Track-It managed tasks are added, updated, and removed
    automatically by track it.  When using track-it managed tasks, you must
    provide a minimum number of cores to split up amoung the active tasks.

    -------- Services --------

    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.AddDepartmentName = channel.unary_unary(
                '/department.DepartmentInterface/AddDepartmentName',
                request_serializer=department__pb2.DeptAddDeptNameRequest.SerializeToString,
                response_deserializer=department__pb2.DeptAddDeptNameResponse.FromString,
                )
        self.AddTask = channel.unary_unary(
                '/department.DepartmentInterface/AddTask',
                request_serializer=department__pb2.DeptAddTaskRequest.SerializeToString,
                response_deserializer=department__pb2.DeptAddTaskResponse.FromString,
                )
        self.AddTasks = channel.unary_unary(
                '/department.DepartmentInterface/AddTasks',
                request_serializer=department__pb2.DeptAddTasksRequest.SerializeToString,
                response_deserializer=department__pb2.DeptAddTasksResponse.FromString,
                )
        self.ClearTasks = channel.unary_unary(
                '/department.DepartmentInterface/ClearTasks',
                request_serializer=department__pb2.DeptClearTasksRequest.SerializeToString,
                response_deserializer=department__pb2.DeptClearTasksResponse.FromString,
                )
        self.ClearTaskAdjustments = channel.unary_unary(
                '/department.DepartmentInterface/ClearTaskAdjustments',
                request_serializer=department__pb2.DeptClearTaskAdjustmentsRequest.SerializeToString,
                response_deserializer=department__pb2.DeptClearTaskAdjustmentsResponse.FromString,
                )
        self.Delete = channel.unary_unary(
                '/department.DepartmentInterface/Delete',
                request_serializer=department__pb2.DeptDeleteRequest.SerializeToString,
                response_deserializer=department__pb2.DeptDeleteResponse.FromString,
                )
        self.DisableTiManaged = channel.unary_unary(
                '/department.DepartmentInterface/DisableTiManaged',
                request_serializer=department__pb2.DeptDisableTiManagedRequest.SerializeToString,
                response_deserializer=department__pb2.DeptDisableTiManagedResponse.FromString,
                )
        self.EnableTiManaged = channel.unary_unary(
                '/department.DepartmentInterface/EnableTiManaged',
                request_serializer=department__pb2.DeptEnableTiManagedRequest.SerializeToString,
                response_deserializer=department__pb2.DeptEnableTiManagedResponse.FromString,
                )
        self.GetDepartmentNames = channel.unary_unary(
                '/department.DepartmentInterface/GetDepartmentNames',
                request_serializer=department__pb2.DeptGetDepartmentNamesRequest.SerializeToString,
                response_deserializer=department__pb2.DeptGetDepartmentNamesResponse.FromString,
                )
        self.GetTasks = channel.unary_unary(
                '/department.DepartmentInterface/GetTasks',
                request_serializer=department__pb2.DeptGetTasksRequest.SerializeToString,
                response_deserializer=department__pb2.DeptGetTasksResponse.FromString,
                )
        self.RemoveDepartmentName = channel.unary_unary(
                '/department.DepartmentInterface/RemoveDepartmentName',
                request_serializer=department__pb2.DeptRemoveDepartmentNameRequest.SerializeToString,
                response_deserializer=department__pb2.DeptRemoveDepartmentNameResponse.FromString,
                )
        self.ReplaceTasks = channel.unary_unary(
                '/department.DepartmentInterface/ReplaceTasks',
                request_serializer=department__pb2.DeptReplaceTaskRequest.SerializeToString,
                response_deserializer=department__pb2.DeptReplaceTaskResponse.FromString,
                )
        self.SetMangedCores = channel.unary_unary(
                '/department.DepartmentInterface/SetMangedCores',
                request_serializer=department__pb2.DeptSetManagedCoresRequest.SerializeToString,
                response_deserializer=department__pb2.DeptSetManagedCoresResponse.FromString,
                )


class DepartmentInterfaceServicer(object):
    """Departments
    Each show usually has a few different departments.  Lighting,
    Animation, FX, Hair, and Cloth are the most common. The default
    department is generally the "Unknown" department. Department names
    must be chosen from a list of allowed department names which are
    setup with the AdminStatic interface. This makes the data much more
    consistent when doing reports by department which is important because
    department names are used for production reports.

    Departments get created automatically when the department name property
    is set on a group.

    Using departments, its possible to add shot based cue priorities.  These
    priorities, known as "tasks", can be Track-It managed, or manually
    entered. Track-It managed tasks are added, updated, and removed
    automatically by track it.  When using track-it managed tasks, you must
    provide a minimum number of cores to split up amoung the active tasks.

    -------- Services --------

    """

    def AddDepartmentName(self, request, context):
        """Add a new department name
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AddTask(self, request, context):
        """Adds a task to this department and return it
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AddTasks(self, request, context):
        """Adds a map of tasks to this deparmtment and return them as a list.  Offers a quick way to add many tasks with one
        function.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClearTasks(self, request, context):
        """Clears all tasks
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClearTaskAdjustments(self, request, context):
        """Clears all manual task adjustments to managed tasks.  This won't do anything unless your using Ti Managed tasks.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Delete(self, request, context):
        """Delete the department
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DisableTiManaged(self, request, context):
        """Disable Track-It management.  This will also clear all tasks.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def EnableTiManaged(self, request, context):
        """Enable Track-It management.  This will pull a task list from Track-It and keep it synced.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDepartmentNames(self, request, context):
        """Return a list of department names
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTasks(self, request, context):
        """Returns the list of tasks for this department.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RemoveDepartmentName(self, request, context):
        """Remove the department of this name
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReplaceTasks(self, request, context):
        """Replaces a map of tasks.  If the task already exists its updated, else its inserted.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetMangedCores(self, request, context):
        """Sets the minimum number of cores for the department to manage between its tasks.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_DepartmentInterfaceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'AddDepartmentName': grpc.unary_unary_rpc_method_handler(
                    servicer.AddDepartmentName,
                    request_deserializer=department__pb2.DeptAddDeptNameRequest.FromString,
                    response_serializer=department__pb2.DeptAddDeptNameResponse.SerializeToString,
            ),
            'AddTask': grpc.unary_unary_rpc_method_handler(
                    servicer.AddTask,
                    request_deserializer=department__pb2.DeptAddTaskRequest.FromString,
                    response_serializer=department__pb2.DeptAddTaskResponse.SerializeToString,
            ),
            'AddTasks': grpc.unary_unary_rpc_method_handler(
                    servicer.AddTasks,
                    request_deserializer=department__pb2.DeptAddTasksRequest.FromString,
                    response_serializer=department__pb2.DeptAddTasksResponse.SerializeToString,
            ),
            'ClearTasks': grpc.unary_unary_rpc_method_handler(
                    servicer.ClearTasks,
                    request_deserializer=department__pb2.DeptClearTasksRequest.FromString,
                    response_serializer=department__pb2.DeptClearTasksResponse.SerializeToString,
            ),
            'ClearTaskAdjustments': grpc.unary_unary_rpc_method_handler(
                    servicer.ClearTaskAdjustments,
                    request_deserializer=department__pb2.DeptClearTaskAdjustmentsRequest.FromString,
                    response_serializer=department__pb2.DeptClearTaskAdjustmentsResponse.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=department__pb2.DeptDeleteRequest.FromString,
                    response_serializer=department__pb2.DeptDeleteResponse.SerializeToString,
            ),
            'DisableTiManaged': grpc.unary_unary_rpc_method_handler(
                    servicer.DisableTiManaged,
                    request_deserializer=department__pb2.DeptDisableTiManagedRequest.FromString,
                    response_serializer=department__pb2.DeptDisableTiManagedResponse.SerializeToString,
            ),
            'EnableTiManaged': grpc.unary_unary_rpc_method_handler(
                    servicer.EnableTiManaged,
                    request_deserializer=department__pb2.DeptEnableTiManagedRequest.FromString,
                    response_serializer=department__pb2.DeptEnableTiManagedResponse.SerializeToString,
            ),
            'GetDepartmentNames': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDepartmentNames,
                    request_deserializer=department__pb2.DeptGetDepartmentNamesRequest.FromString,
                    response_serializer=department__pb2.DeptGetDepartmentNamesResponse.SerializeToString,
            ),
            'GetTasks': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTasks,
                    request_deserializer=department__pb2.DeptGetTasksRequest.FromString,
                    response_serializer=department__pb2.DeptGetTasksResponse.SerializeToString,
            ),
            'RemoveDepartmentName': grpc.unary_unary_rpc_method_handler(
                    servicer.RemoveDepartmentName,
                    request_deserializer=department__pb2.DeptRemoveDepartmentNameRequest.FromString,
                    response_serializer=department__pb2.DeptRemoveDepartmentNameResponse.SerializeToString,
            ),
            'ReplaceTasks': grpc.unary_unary_rpc_method_handler(
                    servicer.ReplaceTasks,
                    request_deserializer=department__pb2.DeptReplaceTaskRequest.FromString,
                    response_serializer=department__pb2.DeptReplaceTaskResponse.SerializeToString,
            ),
            'SetMangedCores': grpc.unary_unary_rpc_method_handler(
                    servicer.SetMangedCores,
                    request_deserializer=department__pb2.DeptSetManagedCoresRequest.FromString,
                    response_serializer=department__pb2.DeptSetManagedCoresResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'department.DepartmentInterface', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class DepartmentInterface(object):
    """Departments
    Each show usually has a few different departments.  Lighting,
    Animation, FX, Hair, and Cloth are the most common. The default
    department is generally the "Unknown" department. Department names
    must be chosen from a list of allowed department names which are
    setup with the AdminStatic interface. This makes the data much more
    consistent when doing reports by department which is important because
    department names are used for production reports.

    Departments get created automatically when the department name property
    is set on a group.

    Using departments, its possible to add shot based cue priorities.  These
    priorities, known as "tasks", can be Track-It managed, or manually
    entered. Track-It managed tasks are added, updated, and removed
    automatically by track it.  When using track-it managed tasks, you must
    provide a minimum number of cores to split up amoung the active tasks.

    -------- Services --------

    """

    @staticmethod
    def AddDepartmentName(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, '/department.DepartmentInterface/AddDepartmentName',
            department__pb2.DeptAddDeptNameRequest.SerializeToString,
            department__pb2.DeptAddDeptNameResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddTask(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, '/department.DepartmentInterface/AddTask',
            department__pb2.DeptAddTaskRequest.SerializeToString,
            department__pb2.DeptAddTaskResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def AddTasks(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, '/department.DepartmentInterface/AddTasks',
            department__pb2.DeptAddTasksRequest.SerializeToString,
            department__pb2.DeptAddTasksResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ClearTasks(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, '/department.DepartmentInterface/ClearTasks',
            department__pb2.DeptClearTasksRequest.SerializeToString,
            department__pb2.DeptClearTasksResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ClearTaskAdjustments(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, '/department.DepartmentInterface/ClearTaskAdjustments',
            department__pb2.DeptClearTaskAdjustmentsRequest.SerializeToString,
            department__pb2.DeptClearTaskAdjustmentsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Delete(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, '/department.DepartmentInterface/Delete',
            department__pb2.DeptDeleteRequest.SerializeToString,
            department__pb2.DeptDeleteResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DisableTiManaged(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, '/department.DepartmentInterface/DisableTiManaged',
            department__pb2.DeptDisableTiManagedRequest.SerializeToString,
            department__pb2.DeptDisableTiManagedResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def EnableTiManaged(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, '/department.DepartmentInterface/EnableTiManaged',
            department__pb2.DeptEnableTiManagedRequest.SerializeToString,
            department__pb2.DeptEnableTiManagedResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDepartmentNames(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, '/department.DepartmentInterface/GetDepartmentNames',
            department__pb2.DeptGetDepartmentNamesRequest.SerializeToString,
            department__pb2.DeptGetDepartmentNamesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTasks(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, '/department.DepartmentInterface/GetTasks',
            department__pb2.DeptGetTasksRequest.SerializeToString,
            department__pb2.DeptGetTasksResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RemoveDepartmentName(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, '/department.DepartmentInterface/RemoveDepartmentName',
            department__pb2.DeptRemoveDepartmentNameRequest.SerializeToString,
            department__pb2.DeptRemoveDepartmentNameResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReplaceTasks(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, '/department.DepartmentInterface/ReplaceTasks',
            department__pb2.DeptReplaceTaskRequest.SerializeToString,
            department__pb2.DeptReplaceTaskResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetMangedCores(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, '/department.DepartmentInterface/SetMangedCores',
            department__pb2.DeptSetManagedCoresRequest.SerializeToString,
            department__pb2.DeptSetManagedCoresResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)