Skip to main content
A task is work Lumos assigns to a user or group, such as approving an access request, creating or removing an account by hand, or handling an error. Each task links to what it’s about through app, target_user, access_request_id, and entitlement_id. Each task also has a status that changes as people act on it.
The Task object

Attributes

Every field above except assignees, actions, and comments is always present, with null when it has no value.

Statuses

pending, accepted, and blocked are the open statuses. completed, dismissed, retried, and expired are final.

Which tasks you can see

What you can do with a task depends on how it’s assigned to you and on your role. A token acts as its user, so the same rules apply to API tokens. The table covers List Tasks, Get Task, List Task Actions, and the endpoints that act on a task. show_all_tasks=true returns 403 for anyone the table doesn’t list with it. Acting on a task you aren’t assigned to requires the built-in Admin role.

Filtering the list

An unknown value for status, type, category, or product_area returns 400. An order_by value outside the list above also returns 400. One unknown ID in assigned_user_ids or assigned_group_ids returns 404 with code not_found, even when the other IDs match. The maximum page_size on this endpoint is 100. List Tasks reduces a larger value to 100.

Acting on a task

Four endpoints act on a task, and a fifth adds a comment. The four return 204 when they succeed. Complete or dismiss. Complete Task and Dismiss Task run the one action that moves the task to completed or dismissed. When there isn’t exactly one such action:
  • If no action moves the task to that status, the call returns 400 with code task.no_action_for_status.
  • If such an action exists but you can’t take it, the call returns 403.
  • If you can take more than one, the call returns 400 with code task.action_ambiguous. Use Perform Task Action to choose one.
  • If the task is already completed or dismissed, the call returns 400 with code task.no_action_for_status, because no action moves a finished task.
Perform a specific action. Call List Task Actions first, or list tasks with expand=actions. Each item has an action_type and the transitions it can make. An assignee of a pending task of type access-request-approval sees something like this:
A transition_to of null means the action leaves the status as it is. Send the action_type to Perform Task Action. Add transition_to to choose the resulting status. It must be one of that action’s transitions. Otherwise the call returns 400 with code task.transition_not_allowed. When the action has one transition, omit transition_to, and Lumos uses that transition. An action_type that Lumos doesn’t recognize returns 400 with code task.action_unknown. Reassign. Reassign Task replaces the task’s assignees with the user_ids and group_ids you send. Send "replace": false to add them to the existing assignees instead.
  • Reassign Task skips IDs that don’t match a user or group. If none match, the call returns 400.
  • Replacing also removes assignments made through a custom attribute, such as a manager field. assignees lists such an assignment as a user, so sending that list back assigns that user directly, and the task stops following the attribute.
  • For some task types, reassigning also changes the status. A blocked task of type account-removal returns to pending.
Comment. Create Task Comment adds a comment of 1 to 4,000 characters and returns it with 201. The four endpoints that act on a task return 409 with code task.already_in_status when the task is already in the status the action would move it to. Any of the five endpoints returns 403 when you aren’t allowed to take the action.

Entitlement IDs on tasks

entitlement_id is the id of the entitlement the task grants or removes. Pass it to Get Entitlement. It’s null when the task isn’t about one entitlement. Approval tasks always carry null. If you’re moving from requestable permissions, see Migrate requestable permissions to entitlements.

Endpoints