**Goal:** Stop paying for the user’s Workspace seat. **Tasks:** * [ ] Research how Workspace billing works (suspend vs delete vs unassign license). * [ ] Identify License Manager API endpoint(s) to **unassign** licenses. * [ ] Input: `primary_email` * [ ] Steps: resolve user → unassign license(s) → (optional) suspend/delete user. * [ ] Verify that license count drops via API/report. * [ ] Emit audit JSON (before/after license state, timestamp). **Acceptance:** * Dry-run mode available. * Idempotent on re-run. * Unit test with mocked API responses.
Goal: Stop paying for the user’s Workspace seat.
Tasks:
Research how Workspace billing works (suspend vs delete vs unassign license).
Identify License Manager API endpoint(s) to unassign licenses.
Input:
primary_emailSteps: resolve user → unassign license(s) → (optional) suspend/delete user.
Verify that license count drops via API/report.
Emit audit JSON (before/after license state, timestamp).
Acceptance:
Dry-run mode available.
Idempotent on re-run.
Unit test with mocked API responses.