Skip to content

Available now

delivery-media-available ​

SOM 1.0.0 11 fields

A media store announcing that media has arrived. (SOM 1.0 schema)

Message typesdelivery.media_available
Typically published byA media store: a MAM, a TAMS store, ingest. (SOM Managed Bus)
Schemahttps://storyobjectmodel.com/schema/1.0/delivery-media-available.schema.json (source at 7297fef)
Defined by SOM7 of 11 fields

The delivery.media_available payload: a media store announcing that media has arrived. Locked at SOM 1.0. Design record — the arrival event carries a locator branch for SYMMETRY with asset-side media_refs[] — media in SOM is any media, not just TAMS. Locked v0.3.1 requires a tams:// source only, so a non-TAMS clip/image (MAM path, S3 key, CMS id) can be referenced by an asset but its arrival cannot be announced; this mirrors media_refs[]' anyOf(source|locator) onto the event. PINNED: time_range against a locator is offset from the referenced file's own zero. A SOM locator points at a stored file, not a conform against embedded source timecode, so the ten-hour-start and source-versus-record reconciliation problem does not arise; where a non-TAMS store carries its own internal timing the range is still offset from the file's zero, never from an embedded label. (SOM 1.0 schema)

Required: message_type, delivery_id, asset_id, arrived_in, arrived_at

Unknown fields: refused. The payload lists every field it accepts.

Carries at least one of source or locator.

Fields ​

FieldTypeDefined by SOM
message_typerequiredstringyes
delivery_idrequiredstring (uuid)not yet
asset_idrequiredstringyes
sourceoptionalstringyes
time_rangeoptionaltimerange or array of timerangeyes
arrived_inrequiredstringyes
arrived_atrequiredstring (date-time)not yet
extensionsoptionalobjectyes
locatoroptionalobjectyes
locator.storerequiredstringnot yet
locator.refrequiredstringnot yet

message_type ​

Required

Type string · Fixed value delivery.media_available

Example delivery.media_available (from examples/delivery/locator.json)

  • Repeats the envelope's message_type, which is what selects this schema. The two must agree: the bus refuses a payload that says something else (payload.message_type_mismatch). (SOM Managed Bus)

Checked by the bus delivery-media-available.required · delivery-media-available.type · delivery-media-available.const

delivery_id ​

Required

Type string (uuid)

Not yet defined by SOM

Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.

Checked by the bus delivery-media-available.required · delivery-media-available.type · delivery-media-available.format.uuid

asset_id ​

Required

Type string

Example asset-still-embassy (from examples/delivery/locator.json)

  • The only way to the story: the payload has no story_id and, being a closed object, refuses one. Find the story through the asset. (SOM 1.0 schema)

Checked by the bus delivery-media-available.required · delivery-media-available.type

source ​

Optional

Type string · Pattern ^tams://[^/]+/.+

Example tams://tams-gcp-store/9f2e7c1a (from examples/delivery/media-available.json)

  • The 1.0 schema: “Fully-qualified TAMS Source URI — tams://store/id; resolves across remote/second-hand stores. Replaces flow_id (Source re-key 29 Jun).” (SOM 1.0 schema)
  • The SOM glossary, Source (TAMS) (CONFIRMED): Abstract identifier and descriptor for media essence on a timeline, independent of technical representation.

Checked by the bus delivery-media-available.type · delivery-media-available.pattern

time_range ​

Optional

Type timerange or array of timerange

Example [0:0_134:0) (from examples/delivery/media-available.json)

  • The 1.0 schema: “Optional time range, or list of ranges. Against a TAMS source, ranges are onto the Source timeline. Against a locator, ranges are offset from the referenced file's own zero: a SOM locator points at a stored file, not a conform against embedded source timecode, so the ten-hour-start and source-versus-record reconciliation problem does not arise. Where a non-TAMS store carries its own internal timing the range is still offset from the file's zero, never from an embedded label — which keeps the door open for stores that segment natively.” (SOM 1.0 schema)
  • Against a locator, a range counts from the stored file's own zero, never from timecode embedded in the media. (SOM 1.0 schema)

Checked by the bus delivery-media-available.type

arrived_in ​

Required

Type string

Example nbcu-image-mam (from examples/delivery/locator.json)

Checked by the bus delivery-media-available.required · delivery-media-available.type

arrived_at ​

Required

Type string (date-time)

Example 2026-07-09T15:00:00Z (from examples/delivery/locator.json)

Not yet defined by SOM

Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.

Checked by the bus delivery-media-available.required · delivery-media-available.type · delivery-media-available.format.date-time

extensions ​

Optional

Type object · Keys match ^com\.[a-z0-9-]+\. · Unknown fields refused

  • Vendor fields, namespaced by reverse domain (com.<vendor>.). Consumers must ignore extensions they don't recognise and must not reject a message for carrying them. (SOM 1.0 conformance §5)

Checked by the bus delivery-media-available.type · delivery-media-available.additionalProperties

locator ​

Optional

Type object · Unknown fields refused

  • The 1.0 schema: “Non-TAMS media store reference (mirrors media_refs[].locator).” (SOM 1.0 schema)
  • For media not in a TAMS store: a MAM path, an object key, a CMS id. The message carries at least one of source and locator. (SOM 1.0 schema)

Checked by the bus delivery-media-available.type · delivery-media-available.additionalProperties

locator.store ​

Required

Type string

Example nbcu-image-mam (from examples/delivery/locator.json)

Not yet defined by SOM

Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.

Checked by the bus delivery-media-available.required · delivery-media-available.type

locator.ref ​

Required

Type string

Example stills/2026/07/embassy-front-04.jpg (from examples/delivery/locator.json)

Not yet defined by SOM

Neither the 1.0 schema nor the SOM glossary says what this field means. Its facts above are exact; its meaning is an open question for the SOM working group.

Checked by the bus delivery-media-available.required · delivery-media-available.type

Shape: timerange ​

A string matching ^[\[(](\d+:\d+)?_(\d+:\d+)?[\])]$.

TAMS timerange — bracketed inclusive/exclusive over seconds:nanoseconds timestamps (e.g. [0:500000000_1:0) ). Open-ended start or end permitted. (SOM 1.0 schema)

Must be refused ​

SOM publishes messages that every conformant system must reject. These are the ones that concern this schema, with the rule this bus reports for each, checked by the same validator the gateway runs.

CaseWhy it must failFieldBus rule
delivery-neither-source-nor-locator.jsondelivery.media_available must carry a source or a locatorsource, locatordelivery-media-available.required, delivery-media-available.anyOf

Generated from the SOM 1.0 schemas at upstream commit 7297fef, the pack this bus validates against. Quoted SOM text is © the SOM authors, CC BY 4.0, with two changes: working-group decision numbers are shown without their #, and attributions to named working-group members are left out. How to read this reference: SOM 1.0 schema.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.