Identity & Access Management

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Name a principal a project creator on the subscription

PUT
/tenants/{tenantId}/subscriptions/{subscriptionId}/project-creators/{principalId}

Grants principalId the right to open projects under the subscription. No request body. Re-granting an existing grant answers that grant unchanged (200); a grant that is actually written records a SUCCEEDED iam.project_creator.grant Operation for the IAM activity trail. Authorization: unreached/unknown subscription 404; no SUBSCRIPTION-level owner grant 403; an API token is refused 403 TOKEN_SCOPE_MISSING (iam:write is never grantable); tenant on non-payment hold 403 TENANT_SUSPENDED. Validation: the grantee must already reach the subscription (a role on it or on a project beneath it), otherwise the grant could never be exercised -- 422 VALIDATION_FAILED, field=principalId. Async & state: Synchronous. Errors: 401; 403; 404; 422; 500. Idempotency/Concurrency: Idempotent by nature (PUT); no Idempotency-Key is read.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

tenantId*string

The tenant id.

subscriptionId*string

The subscription id (unique platform-wide, derived from the tenant id + the subscription's name at creation).

principalId*string

The principal (user id = e-mail, or service-account id) the grant is about.

Response Body

The (new or existing) grant.

application/json
  1. response

One project-creator grant on a subscription.

principalId*string
grantedBy*|

The owner who granted it; null for a grant with no recorded granter.

createdAt*|
Formatdate-time
curl -X PUT "https://example.com/tenants/string/subscriptions/string/project-creators/string"
{  "principalId": "string",  "grantedBy": "string",  "createdAt": "2019-08-24T14:15:22Z"}