def get_service_task_ids(
        service_name,
        task_predicate=None,
        inactive=False,
        completed=False
):
    """ Get a list of task IDs associated with a service
        :param service_name: the service name
        :type service_name: str
        :param task_predicate: filter function which accepts a task object and returns a boolean
        :type task_predicate: function, or None
        :param inactive: whether to include inactive services
        :type inactive: bool
        :param completed: whether to include completed services
        :type completed: bool

        :return: a list of task ids
        :rtye: [str], or None
    """
    tasks = get_service_tasks(service_name, inactive, completed)
    if task_predicate:
        return [t['id'] for t in tasks if task_predicate(t)]
    else:
        return [t['id'] for t in tasks]
Get a list of task IDs associated with a service
        :param service_name: the service name
        :type service_name: str
        :param task_predicate: filter function which accepts a task object and returns a boolean
        :type task_predicate: function, or None
        :param inactive: whether to include inactive services
        :type inactive: bool
        :param completed: whether to include completed services
        :type completed: bool

        :return: a list of task ids
        :rtye: [str], or None