User lifecycle contract

Users endpoints expose create, patch, replace, and deactivate semantics. Each update path must preserve deterministic behavior and return repeatable result states.

Core examples

GET /v2/Users?filter=userName eq "alice"
POST /v2/Users  (idempotent client-generated ID)
PATCH /v2/Users/{id}  [{ op: "replace", path: "active", value: false }]

Scale and consistency

SCIM transcript example

GET /v2/Users?filter=userName+eq+%22alice%22&startIndex=1&count=25
HTTP/2 200
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], "startIndex": 1, "itemsPerPage": 25, "totalResults": 1, "Resources": [ ... ] }
Edge case: PATCH + missing version field
- Status: 409
- Error: versionMismatch
- Operator response: refresh and replay from current etag