API reference
Request irreversible decommission
Records a request that expires after 72 hours. It changes no project authority until an independent approver approves it.
POST/v1/projects/{project_id}/lifecycle/decommission
Authentication Bearer access token with audience taifa-management. Roles and local eligibility are reviewed separately from the OpenAPI bearer scheme.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project_id | path | string | Yes | |
idempotency-key | header | string | Yes |
Request body
application/jsonRequiredidentity__owned_client_router__Reason
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | Yes | Validation: min length 8; max length 500 |
Responses
201Successful Response
Content type: application/jsonActionResult
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
project_id | string | Yes | |
kind | suspend | resume | decommission | Yes | |
status | requested | effective | cancelled | Yes | |
requested_by | string | Yes | |
decided_by | string | null | Yes | |
reason | string | Yes | |
created_at | string | Yes | |
expires_at | string | null | Yes | |
effective_at | string | null | Yes | |
completed_at | string | null | Yes | |
project_status | string | Yes | |
access_revoked | integer | Yes | |
lifecycle_head | integer | Yes | |
revocations | RevocationRead[] | Yes |
Other responses
| Status | Description | Schema |
|---|---|---|
| 403 | Current scoped authority, independent review or recent strong authentication required | |
| 409 | Current project state, target set or idempotency conflict | |
| 422 | Invalid exact request |
Request example
Illustrative only. TypeScript runs in Node.js on the server. Keep management tokens out of browser bundles. Replace the host, token, path values, and any header or required body placeholders before use. Examples do not send requests.
curl -X POST 'https://YOUR_IDENTITY_HOST/v1/projects/REPLACE_WITH_PROJECT_ID/lifecycle/decommission' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'idempotency-key: REPLACE_WITH_IDEMPOTENCY_KEY' \
-H 'Content-Type: application/json' \
--data '{
"reason": "REPLACE_WITH_REASON"
}'Response example
No response example in the current specification.