Appearance
delivery-media-available
SOM 1.0.0 11 fieldsA media store announcing that media has arrived. (SOM 1.0 schema)
| Message types | delivery.media_available |
| Typically published by | A media store: a MAM, a TAMS store, ingest. (SOM Managed Bus) |
| Schema | https://storyobjectmodel.com/schema/1.0/delivery-media-available.schema.json (source at 7297fef) |
| Defined by SOM | 7 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
| Field | Type | Defined by SOM | |
|---|---|---|---|
message_type | required | string | yes |
delivery_id | required | string (uuid) | not yet |
asset_id | required | string | yes |
source | optional | string | yes |
time_range | optional | timerange or array of timerange | yes |
arrived_in | required | string | yes |
arrived_at | required | string (date-time) | not yet |
extensions | optional | object | yes |
locator | optional | object | yes |
locator.store | required | string | not yet |
locator.ref | required | string | not yet |
message_type
RequiredType 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
RequiredType 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
RequiredType string
Example asset-still-embassy (from examples/delivery/locator.json)
- The only way to the story: the payload has no
story_idand, 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
OptionalType 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
OptionalType 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
RequiredType string
Example nbcu-image-mam (from examples/delivery/locator.json)
- The 1.0 schema: “Receiving system (system_id)” (SOM 1.0 schema)
Checked by the bus delivery-media-available.required · delivery-media-available.type
arrived_at
RequiredType 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
OptionalType 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
OptionalType 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
sourceandlocator. (SOM 1.0 schema)
Checked by the bus delivery-media-available.type · delivery-media-available.additionalProperties
locator.store
RequiredType 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
RequiredType 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.
| Case | Why it must fail | Field | Bus rule |
|---|---|---|---|
| delivery-neither-source-nor-locator.json | delivery.media_available must carry a source or a locator | source, locator | delivery-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.