# Detail GET /v1/projects/{project_id}/lifecycle-service-grants/{grant_id} Detail 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 | | | `grant_id` | path | string | Yes | | ## Request body This operation has no request body. ## Responses ### 200 Successful Response | Field | Variant | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | | string | Yes | | | `project_id` | | string | Yes | | | `issuer` | | string | Yes | | | `subject` | | string | Yes | | | `capability` | | lifecycle-consumer | Yes | | | `status` | | pending_review \| effective \| revoked | Yes | | | `active` | | boolean | Yes | | | `version` | | integer | Yes | Validation: minimum 1; maximum 3 | | `proposal_digest` | | string | Yes | Validation: pattern ^[a-f0-9]{64}$ | | `proposer` | | string | Yes | | | `approver` | | string \| null | Yes | | | `proposal_audit_id` | | string | Yes | | | `approval_audit_id` | | string \| null | Yes | | | `revocation_audit_id` | | string \| null | Yes | | | `created_at` | | string ยท date-time | Yes | | | `approved_at` | | string \| null | Yes | | | `revoked_at` | | string \| null | Yes | | ### 422 Validation Error | Field | Variant | Type | Required | Description | | --- | --- | --- | --- | --- | | `detail` | | ValidationError[] | No | | ## 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-service-grants/REPLACE_WITH_GRANT_ID' \ -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-service-grants/REPLACE_WITH_GRANT_ID', { 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-service-grants/REPLACE_WITH_GRANT_ID', headers={'Authorization': 'Bearer ' + os.environ['TAIFA_MANAGEMENT_TOKEN']} ) response.raise_for_status() ``` ## Response example No response example in the current specification.