UpdateAssetReq

Request body for updating an asset draft. Carries the asset's identity (metadata) and content (spec). Only the draft version is editable.

Use the If-Match header (set to the ETag returned by a prior GET / Create / Update response) to enable optimistic concurrency.

  • metadata
    Type: object
    required

    The resource's identity and human-facing labels. Shared shape across all five resource kinds (blueprints, templates, schemas, assets, functions). The pair (key, version) is the canonical handle for any resource within a namespace.

    • key
      Type: string Pattern: ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
      required

      Caller-supplied identifier, unique within the namespace per kind. Stable across versions — a blueprint's key doesn't change when you publish a new version. Snake_case; must start with a lowercase letter.

    • name
      Type: string
      max length:  
      200
      required

      Human-readable display name shown in Studio, list responses, and audit trails (max 200 chars).

    • version
      Type: string
      required

      Either draft (editable; only one draft per key at a time) or a semver like 1.2.0 (immutable once published). On create you choose: pass draft to iterate, or a semver to publish directly.

    • description
      Type: string
      max length:  
      1000

      Optional longer-form description. Helps both humans and AI assistants pick the right resource when browsing the catalog (max 1000 chars).

    • labels
      Type: object

      Arbitrary key/value tags for categorization and filtering — e.g. { "team": "people-ops", "env": "prod" }. Filterable on list endpoints via ?labels[key]=value.

  • spec
    Type: object
    required

    The asset's content. type is required and determines the asset kind (PDF, HTML, image, CSS), which in turn determines whether the binary content is referenced via fileId or supplied inline as content.

    • Binary types (pdf, image) — upload the file first via POST .../files/upload-url and pass the returned ID in fileId.
    • Text types (html, css) — supply the content inline as a string in content.

    HTML assets additionally use htmlConfig to declare partials, styles, images, the viewModel schema, and PDF rendering options. HTML assets are wrapped by HTML templates and rendered via Handlebars.

    • type
      Type: stringenum
      required

      Asset kind — determines whether the binary lives at fileId (binary) or inline at content (text).

      values
      • html
      • image
      • pdf
      • css
    • content
      Type: string

      Inline text content. Required for html and css asset types. Pass the raw HTML source or CSS rules as a string.

    • fileId
      Type: string Pattern: ^f_[0-9a-z]{26}$

      Reference to an uploaded binary file. Required for pdf and image asset types. Upload via POST .../files/upload-url to obtain this ID. Prefixed lowercase ULID, e.g. f_01jv8m7qfj6xj9gkz7a4s2h8e.

    • htmlConfig
      Type: object

      HTML-only. Declares assets the HTML template references (partials, styles, images), the viewModel schema, and PDF rendering options. Combined with the inline content (a Handlebars template), this configures how the HTML renders to PDF.