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.

Request an OS image the catalog does not offer

POST
/scopes/{scopeId}/iam/image-requests

Files a PENDING request for an OS image (family, version, architecture, justification). The region is the project's region. A platform operator fulfils it by pointing it at a published catalog image in that region, or rejects it with a note; the requester is emailed either way (in locale), and the platform operators are emailed when the request is filed. Authorization: compute manage on the project (compute:write for tokens); a reader gets 403. Limits: at most 5 pending requests per organisation -- a 6th is 409 CONFLICT (details.reason image_request_pending_limit). Errors: 401, 403, 404 (unknown or unreachable scope), 409, 422 (validation), 500.

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

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

Request Body

application/json
  1. body

A request for an OS image the catalog does not offer.

osFamily*string
Length1 <= length <= 64
osVersion*string
Length1 <= length <= 64
architecture?string

CPU architecture of a requested OS image.

Default"x86_64"
Value in"x86_64""aarch64"
justification*string

Why the image is needed (shown to the operator).

Length10 <= length <= 1000
locale?|

Language of the decision email (en, tr, de, ar; anything else is en).

Response Body

The request was filed.

application/json
  1. response

A customer's request for an OS image the catalog does not offer.

id*string
tenantId*string
scopeId*string

The subscription the request was filed under.

projectId?|

The project the request was filed from.

region*string

The project's region; the image is wanted there.

requesterId*string
requesterEmail*string
osFamily*string
osVersion*string
architecture*ImageArchitecture

CPU architecture of a requested OS image.

Value in"x86_64""aarch64"
justification*string
status*ImageRequestStatus

Lifecycle of an image request.

Value in"pending""fulfilled""rejected"
catalogImageId?|

The published catalog image that fulfils the request (set when fulfilled).

catalogImageName?|

That image's display name at decision time.

decisionNote*string

The operator's note (required on reject, optional on fulfil; empty while pending).

decidedBy?string|null
decidedAt?|
Formatdate-time
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
curl -X POST "https://example.com/scopes/string/iam/image-requests" \  -H "Content-Type: application/json" \  -d '{    "osFamily": "Rocky Linux",    "osVersion": "9.4",    "justification": "stringstri"  }'
{  "id": "imr-3f2a9c",  "tenantId": "string",  "scopeId": "string",  "projectId": "string",  "region": "ist-1",  "requesterId": "string",  "requesterEmail": "string",  "osFamily": "Rocky Linux",  "osVersion": "9.4",  "architecture": "x86_64",  "justification": "string",  "status": "pending",  "catalogImageId": "string",  "catalogImageName": "string",  "decisionNote": "string",  "decidedBy": "string",  "decidedAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}