TemplateListItem
Summary of a template as returned in list responses. Carries identity, audit metadata, and the template's interface (inputs the caller must supply, plus a slim role list for display). Implementation details (asset content reference, role binding expressions, output transforms) are omitted — fetch the full template to inspect them.
- contentType: string
Hash requiredStable hash of the resource's content. Recomputed on every write (Create, Update, Publish), so it's available for both drafts and published versions. Useful for change detection — compare hashes across two snapshots (e.g. "did the draft actually change?" or "is the draft different from the latest published version?").
- createdType: stringFormat: date-time
At requiredWhen this version was created.
- createdType: object
By requiredActor who created this version.
- idType: stringrequired
Stable ID for the actor (UUID for users; the API key's
keyIdfor service accounts). - typeType: stringenumrequiredvalues
- user
- api
_key
- metadataType: objectrequired
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.- keyType: string
Pattern: ^[a-z][a-z0-9]*(_[a-z0-9]+)*$requiredCaller-supplied identifier, unique within the namespace per kind. Stable across versions — a blueprint's
keydoesn't change when you publish a new version. Snake_case; must start with a lowercase letter. - nameType: stringmax length:200required
Human-readable display name shown in Studio, list responses, and audit trails (max 200 chars).
- versionType: stringrequired
Either
draft(editable; only one draft per key at a time) or a semver like1.2.0(immutable once published). On create you choose: passdraftto iterate, or a semver to publish directly. - descriptionType: stringmax length:1000
Optional longer-form description. Helps both humans and AI assistants pick the right resource when browsing the catalog (max 1000 chars).
- labelsType: object
Arbitrary key/value tags for categorization and filtering — e.g.
{ "team": "people-ops", "env": "prod" }. Filterable on list endpoints via?labels[key]=value.
- specType: objectrequired
Slim summary of the template's interface — enough to identify the template without the full payload.
- inputsType: array object[] · Input[]
Entity inputs the template takes.
- rolesType: array object[]
Slim role list — identity plus the role's output schema reference (the type of data the role produces when signed). Binding expressions and the JSONata output transform are returned by the full template endpoint.
- updatedType: stringFormat: date-time
At requiredWhen this version was last modified (drafts only — published versions are immutable).
- publishedType: stringFormat: date-time
At When this version was published. Absent on drafts.
- publishedType: object
By Actor who published this version. Absent on drafts.
- idType: stringrequired
Stable ID for the actor (UUID for users; the API key's
keyIdfor service accounts). - typeType: stringenumrequiredvalues
- user
- api
_key
