Quick Summary: A learning plan assigns a catalogue item to a person. It shares nothing with training records — the two are both “what has this person done”, never one shape.
Attributes
Rules the API enforces
- A due date cannot be set in the past.
- A due date set by the person’s manager cannot be changed by the person it belongs to.
- A rating is the plan owner’s own feedback: the acting person behind the credential can rate only their own plans — even an admin identity is refused (403). Sending
rating: nullclears the rating; clearing is a real write, never a silent success.
Assignment
GET|POST|DELETE /api/v1/learning-items/{id}/people mirror the career-assignment shape: who has the item, bulk assign, bulk unassign. Assign and unassign identify people by email address — { "emails": ["ada@example.com", "grace@example.com"] }, at most 500 per call. A person’s plans are read at GET /api/v1/people/{id}/learning-plans, where {id} takes the email (or the opaque id from any response).
Careers can also assign learning as a side effect (assigning a career grants the target level’s learnings), so a plan can appear without a direct assignment call —
careerAssignmentId tells you which career it came from.