---
# @generated by sylphx-gen 0.1.0 from contracts@e145cc7cf1bc9605f2b27439e5e17ed76a1a2fd7e7021906a013f7565e4a0cd5. Do not edit.
title: "Assets"
description: "The `assets` collection of Sylphx Generated Assets: An Asset is one declared asset and its generated variants."
type: reference
product: assets
summary: "An Asset is one declared asset and its generated variants."
updated: 2026-09-28
order: 900
---

> **This method is not served on the public API.** `api.sylphx.com` does not route this call: its backend is not deployed behind the public API, or does not implement the call. This page documents the contract. It is kept out of the sidebar and of search engines.

An Asset is one declared asset and its generated variants. Its id is the 16-hex logical key of the recipe, so the same recipe is always the same Asset. There is no create, update or delete: the key is immutable, and `:generate` writes the record.

**Service** Sylphx Generated Assets · **Resource type** `assets.sylphx.com/Asset` · **Name pattern** `orgs/{org}/projects/{project}/envs/{env}/assets/{asset}` · **Shape** `record`

**Not available yet.** Sylphx Generated Assets is declared in the registry but no backend serves it: every call answers `501` with the problem code `UNIMPLEMENTED`.

## Fields

| Field | Type | What it is |
| --- | --- | --- |
| `name` | `string` | `orgs/{org}/projects/{project}/envs/{env}/assets/{asset}`, where `{asset}` is the 16-hex logical key. |
| `uid` | `string` | `ast_<cell><ulid>`; never reused. Output only. |
| `meta` | `ResourceMeta` | Resource metadata. |
| `key` | `string` | The logical key: 16 lowercase hex characters computed from the recipe. Output only. |
| `kind` | `AssetKind` | What kind of asset this is. Output only. One of `image`, `sfx`, `music`, `video`, `character`, `voice`. |
| `recipe` | `AssetRecipe` | The recipe the asset was declared with. Output only. |
| `canonical` | `string` | The exact text the key is the hash of. Output only. |
| `variants_wanted` | `int32` | How many variants the recipe asks for. Output only. |
| `state` | `AssetState` | Where the asset is in its life. Output only. One of `pending`, `ready`, `approved`, `failed`, `refused`, `unsupported`. |
| `conditions` | `Condition[]` | Ready, Reconciling, Stalled. Output only. |
| `seed` | `string` | The seed of the asset, a decimal integer as a string. Output only. |
| `variants` | `Variant[]` | The stored variants, ordered by slot. Output only. |
| `create_time` | `timestamp` | When the asset was first generated. Output only. |
| `update_time` | `timestamp` | When the asset last changed. Output only. |

## Methods

Every method of the collection, in the registry's order, with the scope it
needs. The full request, response and examples are one link away.

| Method | Call | What it does |
| --- | --- | --- |
| `GET` | [`get`](/docs/api/assets#get) | Gets an asset. |
| `GET` | [`list`](/docs/api/assets#list) | Lists assets. The filter is limited to `kind`, `state`, and `review_state`. |
| `POST` | [`generate`](/docs/api/assets#generate) | Records the recipes as assets and generates the variants that are missing. Each call is idempotent and works within a bounded time; call again until `pending` is 0. |
| `POST` | [`lock`](/docs/api/assets#lock) | Returns the `assets.lock` entries and canonical text for the keys the call names, and only those. A read with a request body, like a query. |
| `POST` | [`approve_variant`](/docs/api/assets#approve-variant) | Approves one variant and records who approved it. |
| `POST` | [`reject_variant`](/docs/api/assets#reject-variant) | Rejects one variant. Its slot is freed and the next `:generate` fills it; the rejected file keeps serving at its URL. |
| `POST` | [`retire_variant`](/docs/api/assets#retire-variant) | Retires one variant. Its URL answers 404 from then on and its slot is freed. |

## get

Gets an asset.

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets/asset` · scope `assets:read` · effect `read` · not available yet · [Request, response and examples](/docs/api/assets/get)

## list

Lists assets. The filter is limited to `kind`, `state`, and `review_state`.

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets` · scope `assets:read` · effect `read` · not available yet · paginated · [Request, response and examples](/docs/api/assets/list)

## generate

Records the recipes as assets and generates the variants that are missing. Each call is idempotent and works within a bounded time; call again until `pending` is 0.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets:generate` · scope `assets:write` · effect `write` · not available yet · [Request, response and examples](/docs/api/assets/generate)

## lock

Returns the `assets.lock` entries and canonical text for the keys the call names, and only those. A read with a request body, like a query.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets:lock` · scope `assets:read` · effect `read` · not available yet · [Request, response and examples](/docs/api/assets/lock)

## approve_variant

Approves one variant and records who approved it.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets/asset:approveVariant` · scope `assets:write` · effect `write` · not available yet · [Request, response and examples](/docs/api/assets/approve_variant)

## reject_variant

Rejects one variant. Its slot is freed and the next `:generate` fills it; the rejected file keeps serving at its URL.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets/asset:rejectVariant` · scope `assets:write` · effect `write` · not available yet · [Request, response and examples](/docs/api/assets/reject_variant)

## retire_variant

Retires one variant. Its URL answers 404 from then on and its slot is freed.

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/assets/asset:retireVariant` · scope `assets:write` · effect `destructive` · not available yet · [Request, response and examples](/docs/api/assets/retire_variant)
