MethodPathSummaryAuth
GET/v1/admin/brand-assets—Session
GET/v1/admin/brand-assets/{slot}—Session
PUT/v1/admin/brand-assets/{slot}—Session

Contract file:api/control-brand-assets.openapi.yaml

Operation details

GET /v1/admin/brand-assets

operationId
listPlatformBrandAssets
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Responses

listPlatformBrandAssets Responses
StatusDescription
200Asset metadata

Fields:schema: const cdnca.platform-brand-asset/v1 assets: array<Asset>

401Unauthenticated
403Permission denied

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

GET /v1/admin/brand-assets/{slot}

operationId
getPlatformBrandAsset
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

getPlatformBrandAsset Parameters
NameInTypeRequiredDescription
slotpathstring: favicon / logo / login_ad / logo_dark / login_background / app_iconYes—

Responses

getPlatformBrandAsset Responses
StatusDescription
200Asset metadata

Fields:schema: const cdnca.platform-brand-asset/v1 slot: string: favicon / logo / login_ad / logo_dark / login_background / app_icon revision: integer reference?: string mime_type?: string size_bytes?: integer sha256?: string updated_at?: string(date-time)

401Unauthenticated
403Permission denied

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

PUT /v1/admin/brand-assets/{slot}

operationId
uploadPlatformBrandAsset
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

uploadPlatformBrandAsset Parameters
NameInTypeRequiredDescription
slotpathstring: favicon / logo / login_ad / logo_dark / login_background / app_iconYes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

image/png, image/jpeg, image/x-icon, image/vnd.microsoft.icon · Required:Yes

Responses

uploadPlatformBrandAsset Responses
StatusDescription
200Uploaded asset

Fields:schema: const cdnca.platform-brand-asset/v1 slot: string: favicon / logo / login_ad / logo_dark / login_background / app_icon revision: integer reference?: string mime_type?: string size_bytes?: integer sha256?: string updated_at?: string(date-time)

400Invalid media or request
401Unauthenticated
403Permission denied
409Revision or idempotency conflict

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list