API reference
Propose
POST/v1/projects/{project_id}/lifecycle-service-grants
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/jsonRequiredLifecycleServiceProposal
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | Yes | Validation: min length 8; max length 500 |
issuer | string | Yes | Validation: min length 1; max length 2048 |
subject | string | Yes | Validation: min length 1; max length 255 |
Responses
201Successful Response
Content type: application/jsonGrantRead
| Field | 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 |
Other responses
| Status | Description | Schema |
|---|---|---|
| 422 | Validation Error | HTTPValidationError |
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-service-grants' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'idempotency-key: REPLACE_WITH_IDEMPOTENCY_KEY' \
-H 'Content-Type: application/json' \
--data '{
"reason": "REPLACE_WITH_REASON",
"issuer": "REPLACE_WITH_ISSUER",
"subject": "REPLACE_WITH_SUBJECT"
}'Response example
No response example in the current specification.