# Read project lifecycle and issuer removal state GET /v1/projects/{project_id}/lifecycle Scoped to a current owner or project approver. Revocation state is Management ledger state plus authenticated Go receipts. local_sessions is always unobserved. Authentication: bearer access token with audience `taifa-management`. Endpoint roles and eligibility are reviewed separately from the OpenAPI bearer scheme. No operation-specific scopes are declared in the OpenAPI document. Bearer authentication and endpoint authorization requirements still apply. ## Parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `project_id` | path | string | Yes | | ## Request body This operation has no request body. ## Responses ### 200 Successful Response | Field | Variant | Type | Required | Description | | --- | --- | --- | --- | --- | | `project_id` | | string | Yes | | | `name` | | string | Yes | | | `status` | | string | Yes | | | `downstream` | | DownstreamRead | Yes | | | `actions` | | ActionRead[] | Yes | | | `revocations` | | RevocationDetail[] | Yes | | | `allowed` | | (suspend \| resume \| decommission-request \| decommission-approve \| decommission-cancel)[] | Yes | | ### 403 Current scoped authority, independent review or recent strong authentication required No fields declared in the current specification. ### 409 Current project state, target set or idempotency conflict No fields declared in the current specification. ### 422 Invalid exact request No fields declared in the current specification. ## Request examples Illustrative only. Replace placeholders and keep management tokens on the server. ### cURL ```sh curl -X GET 'https://YOUR_IDENTITY_HOST/v1/projects/REPLACE_WITH_PROJECT_ID/lifecycle' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' ``` ### TypeScript (Node.js/server-side) ```typescript const response = await fetch('https://YOUR_IDENTITY_HOST/v1/projects/REPLACE_WITH_PROJECT_ID/lifecycle', { method: 'GET', headers: { Authorization: `Bearer ${process.env.TAIFA_MANAGEMENT_TOKEN}` } }); const result = await response.json(); ``` ### Python ```python import os import requests response = requests.request( 'GET', 'https://YOUR_IDENTITY_HOST/v1/projects/REPLACE_WITH_PROJECT_ID/lifecycle', headers={'Authorization': 'Bearer ' + os.environ['TAIFA_MANAGEMENT_TOKEN']} ) response.raise_for_status() ``` ## Response example No response example in the current specification.