accounts review, each
subject is an account. In an entitlements review, each subject is one entitlement that an account
holds. subject_type says which, and every subject in one app review has the same type.
You read one subject at a time with Get Subject.
v1 can’t list subjects, assign reviewers, or record decisions yet.
The Subject object
Attributes
Reviewers
Each item inreviewers, and in removal.assignees, is a user or a group:
Decisions
Removal
removal describes how Lumos takes away access a reviewer rejected or modified:
status describes only the removal. A removal reads completed even while evidence of it is
still owed, which evidence_required_by reports.
error.code names the step that failed. It isn’t a fixed set, so don’t branch on it.
error.message is what the integration or workflow reported.
error can be null even when status is failed. When a removal waits on a
task for a person to act on, its error clears only once that person
acts on the task.
Evidence
Evidence sits on the subject, besideremoval, because a subject whose access was kept can owe
evidence too. evidence_required_by gives the highest-ranked reason that applies:
is_evidence_attached says whether any file is attached. With expand=evidence, each item in
evidence has filename, content_type, description, uploaded_by, and uploaded_at. v1
doesn’t download or upload evidence files.
AI recommendation
expand=ai_recommendation adds what AI Assist recommended, if it reached a recommendation. On an
app review where AI Assist is off, the call returns 400 with code app_review.ai_disabled.
Expanding a subject
Get Subject takes these inexpand, separated by
commas: ai_recommendation, evidence, and removal.itsm_ticket. A field you don’t ask
for is absent from the response, not null. Any other value returns 400.