---
title: "Flow Details"
method: GET
path: "/flows/{flowId}"
tags: ["Flows"]
---

# Flow Details

`GET /flows/{flowId}`

Returns Flow metadata.

## Query parameters

- `include_timerange` boolean
- `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.

## Response `200`

- union — Describes a Flow
  - object — Describes a Flow (common properties to all Flows, imported by type-specific specifications)
    - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `source_id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `label` string — Freeform string label for the Flow. This should be a very short, human-readable label that may be displayed in listings of Flows.
    - `description` string — Freeform text describing the Flow. This should be a human-readable description that may be showed in detailed views of Flows. The description should be longer and more detailed than `label`.
    - `created_by` string — A string identifier for the entity that created the Flow. Service implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `updated_by` string — A string identifier for the entity that updated the Flow metadata most recently. Service implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `tags` Tags — Key is a freeform string. Value is a freeform string, or an array of freeform strings.
    - `metadata_version` string — A change to the Flow metadata, not including metadata_version, metadata_updated, segments_updated, or Segments, results in a new version. If the metadata_version for Flow instances is identical then the metadata is identical. Service implementations SHOULD set suitable default values for `metadata_version` whenever Flow metadata is changed and `metadata_version` is either not set by the client, or set to it's existing value. Service implementations MAY permit clients to edit the value, subject to suitable permissions-based limitations. Where media is transfered between TAMS service instances without changing the Flow metadata, clients SHOULD maintain the `metadata_version`. To support this, service implementations SHOULD always accept the setting of `metadata_version` by the client on initial Flow creation. Service implementations SHOULD update this field where metadata is updated via child endpoints. Note that this specification places no requirements on incremental versioning. Service implementations may, for example, choose to use hashes or date-time version identifiers.
    - `generation` integer — An indication of whether a particular Flow of a Source has been through more or fewer lossy encodings than another Flow of the same Source. This parameter provides a hint to clients as to which is the "highest quality" Flow available to them. A Flow with a higher generation may contain less of the original information than a Flow with a lower generation, although the absolute values generally have no particular meaning. Where a Flow is captured straight from the orginating device (e.g. camera/microphone) in its highest quality, and there is no possibility of the content becoming available in a higher quality (e.g. via lossless capture from ST2110 or SDI), it SHOULD have a `generation` of `0`. Where a lossy transcode has been carried out on an existing Flow, the `generation` should be incremented by 1 on the transcoded Flow. Where the originating device outputs multiple qualities of the Source (for example an ingester generated a transcoded proxy and ingested it at the same time), `generation` should be set to represent the encoding processes each has been through.
    - `created` string, date-time — The date-time the Flow was created in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `metadata_updated` string, date-time — The date-time the Flow metadata was updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `segments_updated` string, date-time — The date-time the Flow Segments were updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `read_only` boolean — If set to 'true', service implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), and Flow Segments. Service implementations should also reject requests to the [`/flows/{flowId}/storage`](#/operations/POST_flows-flowId-storage) endpoint for the Flow, and requests to delete the Flow.
    - `codec` string, required — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `container` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `avg_bit_rate` integer — The average bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `max_bit_rate` integer — The maximum bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `segment_duration` object — The target Flow Segment duration in seconds. The duration for each Segment may vary around this target value. See also the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote for how this property can be used to calculate buffer sizes.
      - `numerator` integer, required — numerator
      - `denominator` integer — denominator
    - `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.
    - `flow_collection` object[] — Describes how Flows are collected into another Flow
      - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
      - `role` string, required — A human-readable role of the element in this collection (e.g. 'R' to denote a right audio channel in a collection of mono audio Sources)
      - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
        - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
        - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
        - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
          - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
          - `channel_range` string — Inclusive range of (zero-based) container channel numbers
        - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
          - `pid` integer — The packet ID for the elementary stream packets
        - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
          - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
          - `track_id` integer — The track ID in the package
        - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
          - `track_id` integer — The track ID
    - `collected_by` Uuid[] — Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
      - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
      - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
      - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
        - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
        - `channel_range` string — Inclusive range of (zero-based) container channel numbers
      - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
        - `pid` integer — The packet ID for the elementary stream packets
      - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
        - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
        - `track_id` integer — The track ID in the package
      - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
        - `track_id` integer — The track ID
    - `format` 'urn:x-nmos:format:video', required — The primary content type URN for the Flow.
    - `essence_parameters` object, required — Describes the parameters of the essence inside this video Flow
      - `frame_width` integer, required — The width of the picture in pixels.
      - `frame_height` integer, required — The height of the picture in pixels.
      - `bit_depth` integer — The number of significant bits used to represent the video component sample. If codec is `video/raw`, bit_depth must be set.
      - `interlace_mode` 'progressive' | 'interlaced_tff' | 'interlaced_bff' | 'interlaced_psf' — Interlaced video mode for frames in this Flow
      - `colorspace` 'BT601' | 'BT709' | 'BT2020' | 'BT2100' — Colorspace used for the video
      - `transfer_characteristic` 'SDR' | 'HLG' | 'PQ' — Transfer characteristic
      - `aspect_ratio` object — The display aspect ratio. i.e. display_width / display_height
        - `numerator` integer, required — numerator
        - `denominator` integer, required — denominator
      - `pixel_aspect_ratio` object — The pixel aspect ratio. This is usually 1:1 (i.e. square pixels) for modern video. Some, usually older, video formats use non-square pixels e.g. some Standard Definition video. This is where that may be indicated.
        - `numerator` integer, required — numerator
        - `denominator` integer, required — denominator
      - `component_type` 'YCbCr' | 'RGB' — Picture component representation.
      - `horiz_chroma_subs` integer — Horizontal chroma component sub-sampling. When unc_type is set to a YUV type, horiz_chroma_subs must be set.
      - `vert_chroma_subs` integer — Vertical chroma component sub-sampling. When unc_type is set to a YUV type, vert_chroma_subs must be set.
      - `unc_parameters` object
        - `unc_type` 'planar' | 'YUYV' | 'UYVY' | 'AYUV' | 'v210' | 'v216' | 'RGB' | 'RGBx' | 'xRGB' | 'BGRx' | 'xBGR' | 'RGBA' | 'ARGB' | 'BGRA' | 'ABGR' | 'alpha', required — Uncompressed picture packing type. If codec is `video/raw`, unc_type must be set.
      - `avc_parameters` object
        - `profile` integer, required — AVC / H.264 profile byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
        - `level` integer, required — AVC / H.264 level byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
        - `flags` integer, required — AVC / H.264 flags byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
      - `frame_rate` object — The fixed number of frames per second. MUST be set if `vfr` is `false` or omitted. MUST NOT be set if `vfr` is `true`.
        - `numerator` integer, required — numerator
        - `denominator` integer — denominator
      - `vfr` boolean — If `true`, the frame rate of the Flow is variable and `frame_rate` MUST NOT be set. If `false` or omitted, the frame rate of the Flow is fixed and `frame_rate` MUST be set.
      - `init_segments` boolean — Whether the Flow makes use of initialisation segments. This parameter MUST be set to `true` if Media Objects have `init_object` populated. If set to `true`, all Media Objects MUST have `init_object` populated. Assume `false` if omitted.
  - object — Describes a Flow (common properties to all Flows, imported by type-specific specifications)
    - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `source_id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `label` string — Freeform string label for the Flow. This should be a very short, human-readable label that may be displayed in listings of Flows.
    - `description` string — Freeform text describing the Flow. This should be a human-readable description that may be showed in detailed views of Flows. The description should be longer and more detailed than `label`.
    - `created_by` string — A string identifier for the entity that created the Flow. Service implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `updated_by` string — A string identifier for the entity that updated the Flow metadata most recently. Service implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `tags` Tags — Key is a freeform string. Value is a freeform string, or an array of freeform strings.
    - `metadata_version` string — A change to the Flow metadata, not including metadata_version, metadata_updated, segments_updated, or Segments, results in a new version. If the metadata_version for Flow instances is identical then the metadata is identical. Service implementations SHOULD set suitable default values for `metadata_version` whenever Flow metadata is changed and `metadata_version` is either not set by the client, or set to it's existing value. Service implementations MAY permit clients to edit the value, subject to suitable permissions-based limitations. Where media is transfered between TAMS service instances without changing the Flow metadata, clients SHOULD maintain the `metadata_version`. To support this, service implementations SHOULD always accept the setting of `metadata_version` by the client on initial Flow creation. Service implementations SHOULD update this field where metadata is updated via child endpoints. Note that this specification places no requirements on incremental versioning. Service implementations may, for example, choose to use hashes or date-time version identifiers.
    - `generation` integer — An indication of whether a particular Flow of a Source has been through more or fewer lossy encodings than another Flow of the same Source. This parameter provides a hint to clients as to which is the "highest quality" Flow available to them. A Flow with a higher generation may contain less of the original information than a Flow with a lower generation, although the absolute values generally have no particular meaning. Where a Flow is captured straight from the orginating device (e.g. camera/microphone) in its highest quality, and there is no possibility of the content becoming available in a higher quality (e.g. via lossless capture from ST2110 or SDI), it SHOULD have a `generation` of `0`. Where a lossy transcode has been carried out on an existing Flow, the `generation` should be incremented by 1 on the transcoded Flow. Where the originating device outputs multiple qualities of the Source (for example an ingester generated a transcoded proxy and ingested it at the same time), `generation` should be set to represent the encoding processes each has been through.
    - `created` string, date-time — The date-time the Flow was created in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `metadata_updated` string, date-time — The date-time the Flow metadata was updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `segments_updated` string, date-time — The date-time the Flow Segments were updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `read_only` boolean — If set to 'true', service implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), and Flow Segments. Service implementations should also reject requests to the [`/flows/{flowId}/storage`](#/operations/POST_flows-flowId-storage) endpoint for the Flow, and requests to delete the Flow.
    - `codec` string, required — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `container` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `avg_bit_rate` integer — The average bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `max_bit_rate` integer — The maximum bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `segment_duration` object — The target Flow Segment duration in seconds. The duration for each Segment may vary around this target value. See also the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote for how this property can be used to calculate buffer sizes.
      - `numerator` integer, required — numerator
      - `denominator` integer — denominator
    - `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.
    - `flow_collection` object[] — Describes how Flows are collected into another Flow
      - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
      - `role` string, required — A human-readable role of the element in this collection (e.g. 'R' to denote a right audio channel in a collection of mono audio Sources)
      - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
        - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
        - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
        - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
          - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
          - `channel_range` string — Inclusive range of (zero-based) container channel numbers
        - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
          - `pid` integer — The packet ID for the elementary stream packets
        - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
          - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
          - `track_id` integer — The track ID in the package
        - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
          - `track_id` integer — The track ID
    - `collected_by` Uuid[] — Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
      - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
      - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
      - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
        - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
        - `channel_range` string — Inclusive range of (zero-based) container channel numbers
      - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
        - `pid` integer — The packet ID for the elementary stream packets
      - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
        - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
        - `track_id` integer — The track ID in the package
      - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
        - `track_id` integer — The track ID
    - `format` 'urn:x-nmos:format:audio', required — The primary content type URN for the Flow.
    - `essence_parameters` object, required — Describes the parameters of the essence inside this audio Flow
      - `sample_rate` integer, required — The fixed number of samples per second.
      - `channels` integer, required — The channel count.
      - `bit_depth` integer — The number of significant bits used to represent the audio sample. The minumum number of bytes then equals `round_up(bit_depth / 8)`. If codec is `audio/x-raw-int` bit_depth must be set. If codec is `audio/x-raw-float` bit_depth must be set to 32 or 64
      - `codec_parameters` object
        - `coded_frame_size` integer — The fixed number of samples per coded audio frame.
        - `mp4_oti` integer — The MPEG-4 Object Type Identification. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#mpeg-4_audio
      - `unc_parameters` object
        - `unc_type` 'interleaved' | 'planar' | 'pairs', required — The uncompressed audio multi-channel representation type. If codec is `audio/x-raw-int` or `audio/x-raw-float`, unc_type must be set.
      - `init_segments` boolean — Whether the Flow makes use of initialisation segments. This parameter MUST be set to `true` if Media Objects have `init_object` populated. If set to `true`, all Media Objects MUST have `init_object` populated. Assume `false` if omitted.
  - object — Describes a Flow (common properties to all Flows, imported by type-specific specifications)
    - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `source_id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `label` string — Freeform string label for the Flow. This should be a very short, human-readable label that may be displayed in listings of Flows.
    - `description` string — Freeform text describing the Flow. This should be a human-readable description that may be showed in detailed views of Flows. The description should be longer and more detailed than `label`.
    - `created_by` string — A string identifier for the entity that created the Flow. Service implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `updated_by` string — A string identifier for the entity that updated the Flow metadata most recently. Service implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `tags` Tags — Key is a freeform string. Value is a freeform string, or an array of freeform strings.
    - `metadata_version` string — A change to the Flow metadata, not including metadata_version, metadata_updated, segments_updated, or Segments, results in a new version. If the metadata_version for Flow instances is identical then the metadata is identical. Service implementations SHOULD set suitable default values for `metadata_version` whenever Flow metadata is changed and `metadata_version` is either not set by the client, or set to it's existing value. Service implementations MAY permit clients to edit the value, subject to suitable permissions-based limitations. Where media is transfered between TAMS service instances without changing the Flow metadata, clients SHOULD maintain the `metadata_version`. To support this, service implementations SHOULD always accept the setting of `metadata_version` by the client on initial Flow creation. Service implementations SHOULD update this field where metadata is updated via child endpoints. Note that this specification places no requirements on incremental versioning. Service implementations may, for example, choose to use hashes or date-time version identifiers.
    - `generation` integer — An indication of whether a particular Flow of a Source has been through more or fewer lossy encodings than another Flow of the same Source. This parameter provides a hint to clients as to which is the "highest quality" Flow available to them. A Flow with a higher generation may contain less of the original information than a Flow with a lower generation, although the absolute values generally have no particular meaning. Where a Flow is captured straight from the orginating device (e.g. camera/microphone) in its highest quality, and there is no possibility of the content becoming available in a higher quality (e.g. via lossless capture from ST2110 or SDI), it SHOULD have a `generation` of `0`. Where a lossy transcode has been carried out on an existing Flow, the `generation` should be incremented by 1 on the transcoded Flow. Where the originating device outputs multiple qualities of the Source (for example an ingester generated a transcoded proxy and ingested it at the same time), `generation` should be set to represent the encoding processes each has been through.
    - `created` string, date-time — The date-time the Flow was created in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `metadata_updated` string, date-time — The date-time the Flow metadata was updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `segments_updated` string, date-time — The date-time the Flow Segments were updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `read_only` boolean — If set to 'true', service implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), and Flow Segments. Service implementations should also reject requests to the [`/flows/{flowId}/storage`](#/operations/POST_flows-flowId-storage) endpoint for the Flow, and requests to delete the Flow.
    - `codec` string, required — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `container` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `avg_bit_rate` integer — The average bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `max_bit_rate` integer — The maximum bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `segment_duration` object — The target Flow Segment duration in seconds. The duration for each Segment may vary around this target value. See also the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote for how this property can be used to calculate buffer sizes.
      - `numerator` integer, required — numerator
      - `denominator` integer — denominator
    - `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.
    - `flow_collection` object[] — Describes how Flows are collected into another Flow
      - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
      - `role` string, required — A human-readable role of the element in this collection (e.g. 'R' to denote a right audio channel in a collection of mono audio Sources)
      - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
        - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
        - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
        - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
          - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
          - `channel_range` string — Inclusive range of (zero-based) container channel numbers
        - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
          - `pid` integer — The packet ID for the elementary stream packets
        - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
          - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
          - `track_id` integer — The track ID in the package
        - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
          - `track_id` integer — The track ID
    - `collected_by` Uuid[] — Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
      - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
      - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
      - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
        - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
        - `channel_range` string — Inclusive range of (zero-based) container channel numbers
      - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
        - `pid` integer — The packet ID for the elementary stream packets
      - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
        - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
        - `track_id` integer — The track ID in the package
      - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
        - `track_id` integer — The track ID
    - `format` 'urn:x-tam:format:image', required — The primary content type URN for the Flow.
    - `essence_parameters` object, required — Describes the parameters of the essence inside this image Flow
      - `frame_width` integer, required — The width of the picture in pixels.
      - `frame_height` integer, required — The height of the picture in pixels.
      - `aspect_ratio` object — The display aspect ratio. i.e. display_width / display_height
        - `numerator` integer, required — numerator
        - `denominator` integer, required — denominator
  - object — Describes a Flow (common properties to all Flows, imported by type-specific specifications)
    - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `source_id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `label` string — Freeform string label for the Flow. This should be a very short, human-readable label that may be displayed in listings of Flows.
    - `description` string — Freeform text describing the Flow. This should be a human-readable description that may be showed in detailed views of Flows. The description should be longer and more detailed than `label`.
    - `created_by` string — A string identifier for the entity that created the Flow. Service implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `updated_by` string — A string identifier for the entity that updated the Flow metadata most recently. Service implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `tags` Tags — Key is a freeform string. Value is a freeform string, or an array of freeform strings.
    - `metadata_version` string — A change to the Flow metadata, not including metadata_version, metadata_updated, segments_updated, or Segments, results in a new version. If the metadata_version for Flow instances is identical then the metadata is identical. Service implementations SHOULD set suitable default values for `metadata_version` whenever Flow metadata is changed and `metadata_version` is either not set by the client, or set to it's existing value. Service implementations MAY permit clients to edit the value, subject to suitable permissions-based limitations. Where media is transfered between TAMS service instances without changing the Flow metadata, clients SHOULD maintain the `metadata_version`. To support this, service implementations SHOULD always accept the setting of `metadata_version` by the client on initial Flow creation. Service implementations SHOULD update this field where metadata is updated via child endpoints. Note that this specification places no requirements on incremental versioning. Service implementations may, for example, choose to use hashes or date-time version identifiers.
    - `generation` integer — An indication of whether a particular Flow of a Source has been through more or fewer lossy encodings than another Flow of the same Source. This parameter provides a hint to clients as to which is the "highest quality" Flow available to them. A Flow with a higher generation may contain less of the original information than a Flow with a lower generation, although the absolute values generally have no particular meaning. Where a Flow is captured straight from the orginating device (e.g. camera/microphone) in its highest quality, and there is no possibility of the content becoming available in a higher quality (e.g. via lossless capture from ST2110 or SDI), it SHOULD have a `generation` of `0`. Where a lossy transcode has been carried out on an existing Flow, the `generation` should be incremented by 1 on the transcoded Flow. Where the originating device outputs multiple qualities of the Source (for example an ingester generated a transcoded proxy and ingested it at the same time), `generation` should be set to represent the encoding processes each has been through.
    - `created` string, date-time — The date-time the Flow was created in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `metadata_updated` string, date-time — The date-time the Flow metadata was updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `segments_updated` string, date-time — The date-time the Flow Segments were updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `read_only` boolean — If set to 'true', service implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), and Flow Segments. Service implementations should also reject requests to the [`/flows/{flowId}/storage`](#/operations/POST_flows-flowId-storage) endpoint for the Flow, and requests to delete the Flow.
    - `codec` string, required — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `container` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `avg_bit_rate` integer — The average bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `max_bit_rate` integer — The maximum bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `segment_duration` object — The target Flow Segment duration in seconds. The duration for each Segment may vary around this target value. See also the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote for how this property can be used to calculate buffer sizes.
      - `numerator` integer, required — numerator
      - `denominator` integer — denominator
    - `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.
    - `flow_collection` object[] — Describes how Flows are collected into another Flow
      - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
      - `role` string, required — A human-readable role of the element in this collection (e.g. 'R' to denote a right audio channel in a collection of mono audio Sources)
      - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
        - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
        - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
        - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
          - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
          - `channel_range` string — Inclusive range of (zero-based) container channel numbers
        - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
          - `pid` integer — The packet ID for the elementary stream packets
        - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
          - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
          - `track_id` integer — The track ID in the package
        - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
          - `track_id` integer — The track ID
    - `collected_by` Uuid[] — Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
      - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
      - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
      - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
        - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
        - `channel_range` string — Inclusive range of (zero-based) container channel numbers
      - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
        - `pid` integer — The packet ID for the elementary stream packets
      - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
        - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
        - `track_id` integer — The track ID in the package
      - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
        - `track_id` integer — The track ID
    - `format` 'urn:x-nmos:format:data', required — The primary content type URN for the Flow.
    - `essence_parameters` object, required — Describes the parameters of the essence inside this data Flow
      - `data_type` string — The type of information encoded in the Flow, identified using a URN. e.g. The data_type may be urn:x-tams:data:bounding-box, and the codec `application/json`.
      - `init_segments` boolean — Whether the Flow makes use of initialisation segments. This parameter MUST be set to `true` if Media Objects have `init_object` populated. If set to `true`, all Media Objects MUST have `init_object` populated. Assume `false` if omitted.
  - object — Describes a Flow (common properties to all Flows, imported by type-specific specifications)
    - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `source_id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
    - `label` string — Freeform string label for the Flow. This should be a very short, human-readable label that may be displayed in listings of Flows.
    - `description` string — Freeform text describing the Flow. This should be a human-readable description that may be showed in detailed views of Flows. The description should be longer and more detailed than `label`.
    - `created_by` string — A string identifier for the entity that created the Flow. Service implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `updated_by` string — A string identifier for the entity that updated the Flow metadata most recently. Service implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
    - `tags` Tags — Key is a freeform string. Value is a freeform string, or an array of freeform strings.
    - `metadata_version` string — A change to the Flow metadata, not including metadata_version, metadata_updated, segments_updated, or Segments, results in a new version. If the metadata_version for Flow instances is identical then the metadata is identical. Service implementations SHOULD set suitable default values for `metadata_version` whenever Flow metadata is changed and `metadata_version` is either not set by the client, or set to it's existing value. Service implementations MAY permit clients to edit the value, subject to suitable permissions-based limitations. Where media is transfered between TAMS service instances without changing the Flow metadata, clients SHOULD maintain the `metadata_version`. To support this, service implementations SHOULD always accept the setting of `metadata_version` by the client on initial Flow creation. Service implementations SHOULD update this field where metadata is updated via child endpoints. Note that this specification places no requirements on incremental versioning. Service implementations may, for example, choose to use hashes or date-time version identifiers.
    - `generation` integer — An indication of whether a particular Flow of a Source has been through more or fewer lossy encodings than another Flow of the same Source. This parameter provides a hint to clients as to which is the "highest quality" Flow available to them. A Flow with a higher generation may contain less of the original information than a Flow with a lower generation, although the absolute values generally have no particular meaning. Where a Flow is captured straight from the orginating device (e.g. camera/microphone) in its highest quality, and there is no possibility of the content becoming available in a higher quality (e.g. via lossless capture from ST2110 or SDI), it SHOULD have a `generation` of `0`. Where a lossy transcode has been carried out on an existing Flow, the `generation` should be incremented by 1 on the transcoded Flow. Where the originating device outputs multiple qualities of the Source (for example an ingester generated a transcoded proxy and ingested it at the same time), `generation` should be set to represent the encoding processes each has been through.
    - `created` string, date-time — The date-time the Flow was created in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `metadata_updated` string, date-time — The date-time the Flow metadata was updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `segments_updated` string, date-time — The date-time the Flow Segments were updated in a given context, e.g. in the service instance. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `read_only` boolean — If set to 'true', service implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), and Flow Segments. Service implementations should also reject requests to the [`/flows/{flowId}/storage`](#/operations/POST_flows-flowId-storage) endpoint for the Flow, and requests to delete the Flow.
    - `codec` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `container` string — A Mime Type without parameters as defined in [RFC2045](https://www.rfc-editor.org/rfc/rfc2045#section-5.1) and [RFC7231](https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.1)
    - `avg_bit_rate` integer — The average bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `max_bit_rate` integer — The maximum bit rate of the Flow Segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
    - `segment_duration` object — The target Flow Segment duration in seconds. The duration for each Segment may vary around this target value. See also the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote for how this property can be used to calculate buffer sizes.
      - `numerator` integer, required — numerator
      - `denominator` integer — denominator
    - `timerange` string — A timerange of timestamps. It is represented using one or two timestamps with inclusivity and exclusivity markers. E.g. * `[0:0_10:0)` represents 10 seconds of media starting at timestamp `0:0` and ending before `10:0`. * `(5:0_` represents a timerange starting after `5:0` and to eternity. * `_` without timestamps or inclusivity markers represents "eternity" (i.e. the entire timeline). * `()` without timestamps represents "never" (i.e. a range of zero length in no particular position). * `[1694429247:0_1694429248:0)` is a 1 second TAI timerange starting at 2023-09-11T10:46:50.0Z UTC. * `[1694429247:0]` is an instantaneous TAI timerange at 2023-09-11T10:46:50.0Z UTC. This is equivalent to `[1694429247:0_1694429247:0]`. The short syntax is preferred due to ease of identification as instantaneous. Instantaneous TimeRanges cannot use exclusive markers (i.e. `(` or `)`). * A `[` or `]` indicates that bound is inclusive, and a `(` or `)` indicates that bound is exclusive. Details of the format can be found in the [Timestamps in TAMS](https://github.com/bbc/tams/blob/main/docs/appnotes/0008-timestamps-in-TAMS.md) application note.
    - `flow_collection` object[] — Describes how Flows are collected into another Flow
      - `id` string, required — A Universally Unique Identifier (UUID) as defined in [RFC9562](https://www.rfc-editor.org/rfc/rfc9562)
      - `role` string, required — A human-readable role of the element in this collection (e.g. 'R' to denote a right audio channel in a collection of mono audio Sources)
      - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
        - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
        - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
        - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
          - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
          - `channel_range` string — Inclusive range of (zero-based) container channel numbers
        - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
          - `pid` integer — The packet ID for the elementary stream packets
        - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
          - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
          - `track_id` integer — The track ID in the package
        - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
          - `track_id` integer — The track ID
    - `collected_by` Uuid[] — Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Service implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
    - `container_mapping` Containermapping — Defines the location of Flow essence data in a container track
      - `track_index` integer — A zero-based and sequential track index in the container. This assumes a reliable ordering of tracks
      - `format_track_index` integer — A zero-based and sequential track index in the container for a particular Flow format. A container with a video and 2 audio tracks would have a format_track_index 0 for the video Flow and format_track_index 0 and 1 for the audio Flows. This assumes a reliable ordering of tracks for each Flow format
      - `audio_track` object — Mapping for channels in audio tracks to the Flow channels
        - `channel_numbers` integer[] — Array of (zero-based) container channel numbers in Flow order
        - `channel_range` string — Inclusive range of (zero-based) container channel numbers
      - `mp2ts_container` object — Mapping to MPEG-2 Transport Stream containers, ISO/IEC 13818-1 or ITU-T Recommendation H.222.0
        - `pid` integer — The packet ID for the elementary stream packets
      - `mxf_container` object — Mapping to Material Exchange Format containers, SMPTE ST 377-1
        - `package_uid` string — The package UID. Either a SMPTE UMID URN or UUID URN
        - `track_id` integer — The track ID in the package
      - `isobmff_container` object — Mapping to ISO Base Media File Format (e.g. MP4 and MOV) containers, ISO/IEC 14496-12
        - `track_id` integer — The track ID
    - `format` 'urn:x-nmos:format:multi', required — The primary content type URN for the Flow.
    - `essence_parameters` object — Describes the parameters of the essence inside this multi Flow
      - `init_segments` boolean — Whether the Flow makes use of initialisation segments. This parameter MUST be set to `true` if Media Objects have `init_object` populated. If set to `true`, all Media Objects MUST have `init_object` populated. Assume `false` if omitted.

## Other responses

- `400` — Bad request. Invalid query options.
- `404` — The requested Flow does not exist.

---

[API](https://skmtc.net/aws-samples/apis/time-addressable-media-store.md) · [All operations](https://skmtc.net/aws-samples/apis/time-addressable-media-store/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws-samples/time-addressable-media-store/versions/c442607d1b16/schema)
