Developer_release_1.4.0
Class lua-repl.lib.rest.nmos.query.api
Query REST API wrapper.
Overview
The Query API is exposed by NMOS discovery Nodes. It is used to expose the contents of the (distributed) registry to all Nodes on the network. In smaller deployments where no such registry is available, Nodes with their own control capabilities fall back to interrogating Nodes directly using the peer-to-peer specification. This is a read-only API.Attributes defined as 'Optional' in schemas MUST be returned by the Query API if they exist within the registry. The presence declaration relates more to whether it is required for them to be registered at the Registration API side, or presented via the Node API.
Further Documentation
Further normative documentation covering the behaviour of this API is contained in the [docs](../docs) folder of this repository.Methods
api.devices[deviceId]:get () | Get a single Device. |
api.devices:get () | List Devices. |
api.flows[flowId]:get () | Get a single Flow. |
api.flows:get () | List Flows. |
api.nodes[nodeId]:get () | Get a single Node. |
api.nodes:get () | List Nodes. |
api.receivers[receiverId]:get () | Get a single Receiver. |
api.receivers:get () | List Receivers. |
api.senders[senderId]:get () | Get a single Sender. |
api.senders:get () | List Senders. |
api.sources[sourceId]:get () | Get a single Source. |
api.sources:get () | List Sources. |
api.subscriptions[subscriptionId]:delete () | Delete a single subscription. |
api.subscriptions[subscriptionId]:get () | Get a single subscription (for debug use only). |
api.subscriptions[subscriptionId]:options () | A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes. |
api.subscriptions:get () | List available WebSocket connections providing real-time updates on resource changes (for debug use only). |
api.subscriptions:options () | A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes. |
api.subscriptions:post (payload) | Create a WebSocket subscription to an API resource. |
lua-repl.lib.rest.nmos.query.api:get () | List of paths available from this API. |
lua-repl.lib.rest.nmos.query.api:get_devices () | List Devices. This function is alias for api.devices:get() . |
lua-repl.lib.rest.nmos.query.api:get_flows () | List Flows. This function is alias for api.flows:get() . |
lua-repl.lib.rest.nmos.query.api:get_nodes () | List Nodes. This function is alias for api.nodes:get() . |
lua-repl.lib.rest.nmos.query.api:get_receivers () | List Receivers. This function is alias for api.receivers:get() . |
lua-repl.lib.rest.nmos.query.api:get_senders () | List Senders. This function is alias for api.senders:get() . |
lua-repl.lib.rest.nmos.query.api:get_sources () | List Sources. This function is alias for api.sources:get() . |
lua-repl.lib.rest.nmos.query.api:get_subscriptions () | List available WebSocket connections providing real-time updates on resource changes (for debug use only). |
lua-repl.lib.rest.nmos.query.api:options_subscriptions () | A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes. |
lua-repl.lib.rest.nmos.query.api:subscriptions (payload) | Create a WebSocket subscription to an API resource. |
Methods
- api.devices[deviceId]:get ()
-
Get a single Device.
deviceId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Device
(status 200)
- Describes a Device.
+
- (string) Detailed description of the resource.
- (string) Globally unique identifier for the resource. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. - (string) Freeform string label for the resource.
- (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.
- (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:
/^[0-9]+:[0-9]+$/
. controls
: (array of items) Control endpoints exposed for the Device. +item
: (table/device) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a control endpoint, whether http or otherwise.item.type
: (string/uri) URN identifying the control format.
- (string) Globally unique identifier for the Node which initially created the Device. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. receivers
: (array of items) UUIDs of Receivers attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
senders
: (array of items) UUIDs of Senders attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
type
: Device type URN. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:device:/
.
or
- (any)
- (string) Must match the pattern:
{ controls = { { authorization = false; href = "wss://154.67.62.2:4635"; type = "urn:x-manufacturer:control:generic"; }; }; description = "pipeline 1 default device"; id = "a370d258-69de-4422-860a-ee4cf32ee9f4"; label = "pipeline 1 default device"; node_id = "3a25a674-e6eb-4987-84ad-ef479fe4d527"; receivers = { "863532de-a97d-4597-989a-e79688f2d5f9"; "632d7e6d-7357-44de-a425-a94fbe94974e"; "95ef711b-564d-4655-a98b-5b9ccfb419d7"; "9ee74607-f831-42f5-af08-a614ce0706df"; "1311bf13-869c-45b4-915e-8b4e8b8e26fd"; "debcd758-129d-4e0b-a0e3-f1d9ce5edfbc"; "0fee9741-e266-4c27-b480-1f897463ea4b"; "ef9e58bd-431a-466d-a67f-0318858b981c"; "68ca0867-ec4b-4eca-92e0-4c4c668a72b0"; }; senders = { }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441723676:366608283"; }
Or
-
table/Error
(status 404) Returned when the requested Device ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Device ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.devices:get ()
-
List Devices.
Returns:
-
table/Devices
(status 200)
result.nil
: (array of items) Collection of Devices. A list of Device resources. +item
: Describes a Device. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.controls
: (array of items) Control endpoints exposed for the Device. +item
: (table/device) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a control endpoint, whether http or otherwise.item.type
: (string/uri) URN identifying the control format.
item.node_id
: (string) Globally unique identifier for the Node which initially created the Device. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.receivers
: (array of items) UUIDs of Receivers attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.senders
: (array of items) UUIDs of Senders attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.type
: Device type URN. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:device:/
.
or
- (any)
- (string) Must match the pattern:
Example:
{ { controls = { { href = "http://124.54.36.2:465"; type = "urn:x-manufacturer:control:generic"; }; }; description = "pipeline 1 default device"; id = "c501ae64-f525-48b7-9816-c5e8931bc017"; label = "pipeline 1 default device"; node_id = "1d452562-e1d5-4e84-b057-5c24de5f6b48"; receivers = { }; senders = { "c72cca5b-01db-47aa-bb00-03893defbfae"; "171d5c80-7fff-4c23-9383-46503eb1c63e"; "a2655c48-8a46-4c82-b9bc-98760d59d7f8"; }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441723957:582701772"; }; { controls = { }; description = "pipeline 1 default device"; id = "a30e4fba-254a-4e97-8bf7-daec80b8e57f"; label = "pipeline 1 default device"; node_id = "3b8be755-08ff-452b-b217-c9151eb21193"; receivers = { }; senders = { }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441976012:727999141"; }; { controls = { }; description = "pipeline 1 default device"; id = "e19ef82c-5f0a-48da-a86c-bb2377ab09a4"; label = "pipeline 1 default device"; node_id = "4cf38bb4-d6c4-48d6-a086-6eac45d73ae5"; receivers = { "a383178a-76cc-4894-9121-dc390c7847d3" }; senders = { "24da6ba7-b0aa-4883-a89a-2b867328dbf9" }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441722334:834709519"; }; { controls = { { authorization = false; href = "wss://154.67.62.2:4635"; type = "urn:x-manufacturer:control:generic"; }; }; description = "pipeline 1 default device"; id = "a370d258-69de-4422-860a-ee4cf32ee9f4"; label = "pipeline 1 default device"; node_id = "3a25a674-e6eb-4987-84ad-ef479fe4d527"; receivers = { "863532de-a97d-4597-989a-e79688f2d5f9"; "632d7e6d-7357-44de-a425-a94fbe94974e"; "95ef711b-564d-4655-a98b-5b9ccfb419d7"; "9ee74607-f831-42f5-af08-a614ce0706df"; "1311bf13-869c-45b4-915e-8b4e8b8e26fd"; "debcd758-129d-4e0b-a0e3-f1d9ce5edfbc"; "0fee9741-e266-4c27-b480-1f897463ea4b"; "ef9e58bd-431a-466d-a67f-0318858b981c"; "68ca0867-ec4b-4eca-92e0-4c4c668a72b0"; }; senders = { }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441723676:366608283"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.flows[flowId]:get ()
-
Get a single Flow.
flowId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Flow
(status 200)
Example:
{ bit_depth = 16; description = "Capture Audio Proxy"; device_id = "169feb2c-3fae-42a5-ae2e-f6f8cbce29cf"; format = "urn:x-nmos:format:audio"; id = "b3bb5be7-9fe9-4324-a5bb-4c70e1084449"; label = "Capture Audio Proxy"; media_type = "audio/L16"; parents = { }; sample_rate = { numerator = 48000 }; source_id = "2aa143ac-0ab7-4d75-bc32-5c00c13d186f"; tags = { host = { "host1" }; }; version = "1441812152:154331951"; }
Or
-
table/Error
(status 404) Returned when the requested Flow ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Flow ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.flows:get ()
-
List Flows.
Returns:
-
table/Flows
(status 200)
result.nil
: (array of items) Collection of Flows. A list of Flow resources. +item
: Describes a Flow. Possible content: +item
: Describes a raw Video Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_video_raw) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.colorspace
: Colorspace used for the video. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"BT601","BT709","BT2020","BT2100"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:video"}
.item.frame_height
: (number/integer) Height of the picture in pixels.item.frame_width
: (number/integer) Width of the picture in pixels.item.interlace_mode
: (string) Interlaced video mode for frames in this Flow. Possible values:{"progressive","interlaced_tff","interlaced_bff","interlaced_psf"}
.item.transfer_characteristic
: Transfer characteristic. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"SDR","HLG","PQ"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.components
: (array of items) Array of objects describing the components. +item
: (table/flow_video_raw) +item.bit_depth
: (number/integer) Number of bits used to describe each sample.item.height
: (number/integer) Height of this component in pixels.item.name
: (string) Name of this component. Possible values:{"Y","Cb","Cr","I","Ct","Cp","A","R","G","B","DepthMap"}
.item.width
: (number/integer) Width of this component in pixels.
item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"video/raw"}
.item
: Describes a coded Video Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_video_coded) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.colorspace
: Colorspace used for the video. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"BT601","BT709","BT2020","BT2100"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:video"}
.item.frame_height
: (number/integer) Height of the picture in pixels.item.frame_width
: (number/integer) Width of the picture in pixels.item.interlace_mode
: (string) Interlaced video mode for frames in this Flow. Possible values:{"progressive","interlaced_tff","interlaced_bff","interlaced_psf"}
.item.transfer_characteristic
: Transfer characteristic. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"SDR","HLG","PQ"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"video/H264","video/vc2"}
.
or
- (string) Must match the pattern:
/^video\/[^\s\/]+$/
.
- (string) Possible values:
item
: Describes a raw audio Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_audio_raw) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:audio"}
.item.sample_rate
: (table/flow_audio_raw) Number of audio samples per second for this Flow. +item.sample_rate.denominator
: (number/integer) Denominator.item.sample_rate.numerator
: (number/integer) Numerator.item.bit_depth
: (number/integer) Bit depth of the audio samples.item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"audio/L24","audio/L20","audio/L16","audio/L8"}
.
or
- (string) Must match the pattern:
/^audio\/[^\s\/]+$/
.
- (string) Possible values:
item
: Describes a coded audio Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_audio_coded) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:audio"}
.item.sample_rate
: (table/flow_audio_coded) Number of audio samples per second for this Flow. +item.sample_rate.denominator
: (number/integer) Denominator.item.sample_rate.numerator
: (number/integer) Numerator.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Must match the pattern:/^audio\/[^\s\/]+$/
.item
: Describes a generic data Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Must match the pattern:/^[^\s\/]+\/[^\s\/]+$/
.item
: Describes an SDI ancillary Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_sdianc_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.DID_SDID
: (array of items) List of Data identification and Secondary data identification words. +item
: (table/flow_sdianc_data) +item.DID
: (string) Data identification word. Must match the pattern:/^0x[0-9a-fA-F]{2}$/
.item.SDID
: (string) Secondary data identification word. Must match the pattern:/^0x[0-9a-fA-F]{2}$/
.
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"video/smpte291"}
.item
: Describes a JSON based Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_json_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.event_type
: (string) Event type generated by this Flow, if applicable.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"application/json"}
.item
: Describes a mux Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_mux) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:mux"}
.item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"video/SMPTE2022-6"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
Example:
{ { colorspace = "BT709"; description = "Off-air proxy"; device_id = "a711ddd3-376d-4d6d-934d-834e54e045b1"; format = "urn:x-nmos:format:video"; frame_height = 540; frame_width = 960; id = "0c1f03d7-7e94-4b21-94d1-3ffbee8a0606"; interlace_mode = "interlaced_tff"; label = "Off-air proxy"; media_type = "video/H264"; parents = { }; source_id = "c7b1c809-84d4-427d-b6bb-c8397c66ce2b"; tags = { }; version = "1441724130:194944510"; }; { colorspace = "BT709"; components = { { bit_depth = 10, height = 1080, name = "Y", width = 1920 }; { bit_depth = 10, height = 1080, name = "Cb", width = 960 }; { bit_depth = 10, height = 1080, name = "Cr", width = 960 }; }; description = "Off-air"; device_id = "a711ddd3-376d-4d6d-934d-834e54e045b1"; format = "urn:x-nmos:format:video"; frame_height = 1080; frame_width = 1920; id = "0e85d87b-4b19-4452-aea3-984c9f94bbc9"; interlace_mode = "interlaced_tff"; label = "Off-air"; media_type = "video/raw"; parents = { }; source_id = "c7b1c809-84d4-427d-b6bb-c8397c66ce2b"; tags = { }; version = "1441724130:186085940"; }; { bit_depth = 16; description = "Capture Audio Proxy"; device_id = "169feb2c-3fae-42a5-ae2e-f6f8cbce29cf"; format = "urn:x-nmos:format:audio"; id = "b3bb5be7-9fe9-4324-a5bb-4c70e1084449"; label = "Capture Audio Proxy"; media_type = "audio/L16"; parents = { }; sample_rate = { numerator = 48000 }; source_id = "2aa143ac-0ab7-4d75-bc32-5c00c13d186f"; tags = { host = { "host1" }; }; version = "1441812152:154331951"; }; { description = "TR-04 Video"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "4857f747-96cf-4ed7-8f4b-9497199f1f25"; label = "TR-04 Video"; media_type = "video/SMPTE2022-6"; parents = { }; source_id = "782fac41-17f6-4a21-8186-57ba63a1a8d3"; tags = { }; version = "1453880607:123995943"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.nodes[nodeId]:get ()
-
Get a single Node.
nodeId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Node
(status 200)
- Describes the Node and the services which run on it.
+
- (string) Detailed description of the resource.
- (string) Globally unique identifier for the resource. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. - (string) Freeform string label for the resource.
- (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.
- (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:
/^[0-9]+:[0-9]+$/
. - (table/node) URL fragments required to connect to the Node API. +
api.endpoints
: (array of items) Host, port and protocol details required to connect to the API. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.host
: IP address or hostname which the Node API is running on. Possible content: +- (string/hostname) or
- (string/ipv4) or
- (string/ipv6)
item.port
: (number/integer) Port number which the Node API is running on. Minimum:1
. Maximum:65535
.item.protocol
: (string) Protocol supported by this instance of the Node API. Possible values:{"http","https"}
.
api.versions
: (array of items) Supported API versions running on this Node. +item
: (string) Must match the pattern:/^v[0-9]+\.[0-9]+$/
.
- (table/node) Capabilities (not yet defined).
clocks
: (array of items) Clocks made available to Devices owned by this Node. +item
: Possible content: +- (table/clock_internal) Describes a clock with no external reference. +
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"internal"}
. - (table/clock_ptp) Describes a clock referenced to PTP. +
- (string) ID of the PTP reference used by this clock. Must match the pattern:
/^[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}$/
. - (boolean) Lock state of this clock to the external reference. If true, this device follows the external reference, otherwise it has no defined relationship to the external reference.
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"ptp"}
. - (boolean) External refclock is synchronised to International Atomic Time (TAI).
- (string) Version of PTP reference used by this clock. Possible values:
{"IEEE1588-2008"}
.
- (table/clock_internal) Describes a clock with no external reference. +
- (string/hostname) Node hostname (optional, deprecated).
- (string/uri) HTTP access href for the Node's API (deprecated).
interfaces
: (array of items) Network interfaces made available to devices owned by this Node. Port IDs and Chassis IDs are used to inform topology discovery via IS-06, and require that interfaces implement ARP at a minimum, and ideally LLDP.. +item
: (table/node) +item.attached_network_device
: (table/node) +item.attached_network_device.chassis_id
: Chassis ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.attached_network_device.port_id
: Port ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Port ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
item.chassis_id
: Chassis ID of the interface, as signalled in LLDP from this node. Set to null where LLDP is unsuitable for use (ie. virtualised environments). Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
or
- (nil) When the Chassis ID is unavailable it should be set to null.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.name
: (string) Name of the interface (unique in scope of this node). This attribute is used by sub-resources of this node such as senders and receivers to refer to interfaces to which they are bound.item.port_id
: (string) Port ID of the interface, as signalled in LLDP or via ARP responses from this node. Must be a MAC address. Must match the pattern:/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
services
: (array of items) Array of objects containing a URN format type and href. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a service running on the Node.item.type
: (string/uri) URN identifying the type of service.
{ api = { endpoints = { { host = "172.29.176.102", port = 12345, protocol = "http" }; }; versions = { "v1.1", "v1.2", "v1.3" }; }; caps = { }; clocks = { { name = "clk0", ref_type = "internal" }; { gmid = "08-00-11-ff-fe-21-e1-b0"; locked = true; name = "clk1"; ref_type = "ptp"; traceable = true; version = "IEEE1588-2008"; }; }; description = "host1"; hostname = "host1"; href = "http://172.29.176.102:12345/"; id = "c8ba20e9-e197-4ec5-8764-4da672128589"; interfaces = { { chassis_id = "74-26-96-db-87-31"; name = "eth0"; port_id = "74-26-96-db-87-31"; }; { chassis_id = "74-26-96-db-87-31"; name = "eth1"; port_id = "74-26-96-db-87-32"; }; }; label = "host1"; services = { { href = "http://172.29.176.102:12345/x-manufacturer/status/"; type = "urn:x-manufacturer:service:status"; }; { href = "http://172.29.176.102:12345/x-manufacturer/pipelinemanager/"; type = "urn:x-manufacturer:service:pipelinemanager"; }; { href = "http://172.29.176.102:12345/x-manufacturer/mdnsbridge/"; type = "urn:x-manufacturer:service:mdnsbridge"; }; }; tags = { }; version = "1441716120:318744030"; }
Or
-
table/Error
(status 404) Returned when the requested Node ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Node ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.nodes:get ()
-
List Nodes.
Returns:
-
table/Nodes
(status 200)
result.nil
: (array of items) Collection of Nodes. A list of Node resources. +item
: Describes the Node and the services which run on it. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.api
: (table/node) URL fragments required to connect to the Node API. +item.api.endpoints
: (array of items) Host, port and protocol details required to connect to the API. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.host
: IP address or hostname which the Node API is running on. Possible content: +- (string/hostname) or
- (string/ipv4) or
- (string/ipv6)
item.port
: (number/integer) Port number which the Node API is running on. Minimum:1
. Maximum:65535
.item.protocol
: (string) Protocol supported by this instance of the Node API. Possible values:{"http","https"}
.
item.api.versions
: (array of items) Supported API versions running on this Node. +item
: (string) Must match the pattern:/^v[0-9]+\.[0-9]+$/
.
item.caps
: (table/node) Capabilities (not yet defined).item.clocks
: (array of items) Clocks made available to Devices owned by this Node. +item
: Possible content: +- (table/clock_internal) Describes a clock with no external reference. +
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"internal"}
. - (table/clock_ptp) Describes a clock referenced to PTP. +
- (string) ID of the PTP reference used by this clock. Must match the pattern:
/^[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}$/
. - (boolean) Lock state of this clock to the external reference. If true, this device follows the external reference, otherwise it has no defined relationship to the external reference.
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"ptp"}
. - (boolean) External refclock is synchronised to International Atomic Time (TAI).
- (string) Version of PTP reference used by this clock. Possible values:
{"IEEE1588-2008"}
.
- (table/clock_internal) Describes a clock with no external reference. +
item.hostname
: (string/hostname) Node hostname (optional, deprecated).item.href
: (string/uri) HTTP access href for the Node's API (deprecated).item.interfaces
: (array of items) Network interfaces made available to devices owned by this Node. Port IDs and Chassis IDs are used to inform topology discovery via IS-06, and require that interfaces implement ARP at a minimum, and ideally LLDP.. +item
: (table/node) +item.attached_network_device
: (table/node) +item.attached_network_device.chassis_id
: Chassis ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.attached_network_device.port_id
: Port ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Port ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
item.chassis_id
: Chassis ID of the interface, as signalled in LLDP from this node. Set to null where LLDP is unsuitable for use (ie. virtualised environments). Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
or
- (nil) When the Chassis ID is unavailable it should be set to null.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.name
: (string) Name of the interface (unique in scope of this node). This attribute is used by sub-resources of this node such as senders and receivers to refer to interfaces to which they are bound.item.port_id
: (string) Port ID of the interface, as signalled in LLDP or via ARP responses from this node. Must be a MAC address. Must match the pattern:/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
item.services
: (array of items) Array of objects containing a URN format type and href. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a service running on the Node.item.type
: (string/uri) URN identifying the type of service.
Example:
{ { api = { endpoints = { { host = "172.29.176.102", port = 12345, protocol = "http" }; }; versions = { "v1.1", "v1.2", "v1.3" }; }; caps = { }; clocks = { { gmid = "08-00-11-ff-fe-21-e1-b0"; locked = true; name = "clk0"; ref_type = "ptp"; traceable = false; version = "IEEE1588-2008"; }; }; description = "host1"; hostname = "host1"; href = "http://172.29.176.102:12345/"; id = "c8ba20e9-e197-4ec5-8764-4da672128589"; interfaces = { { chassis_id = "74-26-96-db-87-31"; name = "eth0"; port_id = "74-26-96-db-87-31"; }; { chassis_id = "74-26-96-db-87-31"; name = "eth1"; port_id = "74-26-96-db-87-32"; }; }; label = "host1"; services = { { href = "http://172.29.176.102:12345/x-manufacturer/status/"; type = "urn:x-manufacturer:service:status"; }; { href = "http://172.29.176.102:12345/x-manufacturer/pipelinemanager/"; type = "urn:x-manufacturer:service:pipelinemanager"; }; { href = "http://172.29.176.102:12345/x-manufacturer/mdnsbridge/"; type = "urn:x-manufacturer:service:mdnsbridge"; }; }; tags = { }; version = "1441716120:318744030"; }; { api = { endpoints = { { host = "172.29.176.19", port = 12345, protocol = "http" }; }; versions = { "v1.1", "v1.2", "v1.3" }; }; caps = { }; clocks = { { gmid = "08-00-11-ff-fe-21-e1-b0"; locked = true; name = "clk0"; ref_type = "ptp"; traceable = false; version = "IEEE1588-2008"; }; }; description = "host2"; hostname = "host2"; href = "http://172.29.176.19:12345/"; id = "cebc6305-e8db-4026-aeb5-eb7a5620839e"; interfaces = { { chassis_id = "a4-26-84-db-58-31"; name = "en0"; port_id = "a4-26-84-db-58-31"; }; { chassis_id = "a4-26-84-db-58-31"; name = "en1"; port_id = "a4-26-84-db-58-32"; }; }; label = "host2"; services = { { href = "http://172.29.176.19:12345/x-manufacturer/pipelinemanager/"; type = "urn:x-manufacturer:service:pipelinemanager"; }; { href = "http://172.29.176.19:12345/x-manufacturer/status/"; type = "urn:x-manufacturer:service:status"; }; { href = "http://172.29.176.19:12345/x-manufacturer/mdnsbridge/"; type = "urn:x-manufacturer:service:mdnsbridge"; }; }; tags = { }; version = "1441716067:450064243"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.receivers[receiverId]:get ()
-
Get a single Receiver.
receiverId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Receiver
(status 200)
- Describes a Receiver. Possible content:
receiver_video
: Describes a video Receiver. +receiver_video.description
: (string) Detailed description of the resource.receiver_video.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.label
: (string) Freeform string label for the resource.receiver_video.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_video.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_video.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_video.subscription
: (table/receiver_video) Object indicating how this Receiver is currently configured to receive data. +receiver_video.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_video.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_video.caps
: (table/receiver_video) Capabilities. +receiver_video.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/raw","video/H264","video/vc2"}
.
or
- (string) Must match the pattern:
/^video\/[^\s\/]+$/
.
- (string) Possible values:
receiver_video.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:video"}
.receiver_audio
: Describes an audio Receiver. +receiver_audio.description
: (string) Detailed description of the resource.receiver_audio.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.label
: (string) Freeform string label for the resource.receiver_audio.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_audio.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_audio.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_audio.subscription
: (table/receiver_audio) Object indicating how this Receiver is currently configured to receive data. +receiver_audio.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_audio.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_audio.caps
: (table/receiver_audio) Capabilities. +receiver_audio.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"audio/L24","audio/L20","audio/L16","audio/L8"}
.
or
- (string) Must match the pattern:
/^audio\/[^\s\/]+$/
.
- (string) Possible values:
receiver_audio.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:audio"}
.receiver_data
: Describes a data Receiver. +receiver_data.description
: (string) Detailed description of the resource.receiver_data.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.label
: (string) Freeform string label for the resource.receiver_data.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_data.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_data.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_data.subscription
: (table/receiver_data) Object indicating how this Receiver is currently configured to receive data. +receiver_data.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_data.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_data.caps
: (table/receiver_data) Capabilities. +receiver_data.caps.event_types
: (array of items) Subclassification of the event types accepted defined by the AMWA IS-07 specification. +item
: (string)
receiver_data.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/smpte291","application/json"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
receiver_data.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:data"}
.receiver_mux
: Describes a mux Receiver. +receiver_mux.description
: (string) Detailed description of the resource.receiver_mux.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.label
: (string) Freeform string label for the resource.receiver_mux.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_mux.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_mux.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_mux.subscription
: (table/receiver_mux) Object indicating how this Receiver is currently configured to receive data. +receiver_mux.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_mux.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_mux.caps
: (table/receiver_mux) Capabilities. +receiver_mux.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/SMPTE2022-6"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
receiver_mux.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:mux"}
.
Example:
{ caps = { media_types = { "video/raw" }; }; description = "RTP Receiver"; device_id = "0d0cb97e-b96a-4a39-887f-d491492d9081"; format = "urn:x-nmos:format:video"; id = "3350d113-1593-4271-a7f5-f4974415bb8e"; interface_bindings = { "eth1" }; label = "Viewer"; subscription = { active = true, sender_id = "55311762-8003-48fa-a645-0a0c7621ce45" }; tags = { Location = { "Location 1" }; }; transport = "urn:x-nmos:transport:rtp"; version = "1441895693:480000000"; }
Or
-
table/Error
(status 404) Returned when the requested Receiver ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Receiver ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.receivers:get ()
-
List Receivers.
Returns:
-
table/Receivers
(status 200)
result.nil
: (array of items) Collection of Receivers. A list of Receiver resources. +item
: Describes a Receiver. Possible content:receiver_video
: Describes a video Receiver. +receiver_video.description
: (string) Detailed description of the resource.receiver_video.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.label
: (string) Freeform string label for the resource.receiver_video.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_video.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_video.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_video.subscription
: (table/receiver_video) Object indicating how this Receiver is currently configured to receive data. +receiver_video.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_video.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_video.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_video.caps
: (table/receiver_video) Capabilities. +receiver_video.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/raw","video/H264","video/vc2"}
.
or
- (string) Must match the pattern:
/^video\/[^\s\/]+$/
.
- (string) Possible values:
receiver_video.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:video"}
.receiver_audio
: Describes an audio Receiver. +receiver_audio.description
: (string) Detailed description of the resource.receiver_audio.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.label
: (string) Freeform string label for the resource.receiver_audio.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_audio.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_audio.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_audio.subscription
: (table/receiver_audio) Object indicating how this Receiver is currently configured to receive data. +receiver_audio.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_audio.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_audio.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_audio.caps
: (table/receiver_audio) Capabilities. +receiver_audio.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"audio/L24","audio/L20","audio/L16","audio/L8"}
.
or
- (string) Must match the pattern:
/^audio\/[^\s\/]+$/
.
- (string) Possible values:
receiver_audio.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:audio"}
.receiver_data
: Describes a data Receiver. +receiver_data.description
: (string) Detailed description of the resource.receiver_data.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.label
: (string) Freeform string label for the resource.receiver_data.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_data.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_data.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_data.subscription
: (table/receiver_data) Object indicating how this Receiver is currently configured to receive data. +receiver_data.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_data.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_data.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_data.caps
: (table/receiver_data) Capabilities. +receiver_data.caps.event_types
: (array of items) Subclassification of the event types accepted defined by the AMWA IS-07 specification. +item
: (string)
receiver_data.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/smpte291","application/json"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
receiver_data.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:data"}
.receiver_mux
: Describes a mux Receiver. +receiver_mux.description
: (string) Detailed description of the resource.receiver_mux.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.label
: (string) Freeform string label for the resource.receiver_mux.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.receiver_mux.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.receiver_mux.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
receiver_mux.subscription
: (table/receiver_mux) Object indicating how this Receiver is currently configured to receive data. +receiver_mux.subscription.active
: (boolean) Receiver is enabled and configured to receive data.receiver_mux.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.receiver_mux.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
receiver_mux.caps
: (table/receiver_mux) Capabilities. +receiver_mux.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/SMPTE2022-6"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
receiver_mux.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:mux"}
.
Example:
{ { caps = { media_types = { "video/raw" }; }; description = "RTP receiver 1"; device_id = "0d0cb97e-b96a-4a39-887f-d491492d9081"; format = "urn:x-nmos:format:video"; id = "3350d113-1593-4271-a7f5-f4974415bb8e"; interface_bindings = { "en0", "en1" }; label = "Viewer 1"; subscription = { active = true, sender_id = "55311762-8003-48fa-a645-0a0c7621ce45" }; tags = { Location = { "Location 1" }; }; transport = "urn:x-nmos:transport:rtp"; version = "1441895693:480000000"; }; { caps = { media_types = { "video/raw" }; }; description = "RTP receiver 2"; device_id = "76aa31e5-c3a4-4639-8dbb-98a86dc32942"; format = "urn:x-nmos:format:video"; id = "3a1be8bd-6077-4933-aa7a-b42b13bdbe8e"; interface_bindings = { "eth0", "eth1" }; label = "Viewer 2"; subscription = { active = true, sender_id = "a325cfe1-47ee-4a23-9a5c-7b5fcb9c2bb2" }; tags = { Location = { "Location 2" }; }; transport = "urn:x-nmos:transport:rtp"; version = "1441726973:353560292"; }; { caps = { media_types = { "audio/L24", "audio/L16" }; }; description = "Audio RX"; device_id = "e19ef82c-5f0a-48da-a86c-bb2377ab09a4"; format = "urn:x-nmos:format:audio"; id = "a383178a-76cc-4894-9121-dc390c7847d3"; interface_bindings = { "eth0" }; label = "Audio RX"; subscription = { active = false }; tags = { }; transport = "urn:x-nmos:transport:rtp"; version = "1441722334:801293520"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.senders[senderId]:get ()
-
Get a single Sender.
senderId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Sender
(status 200)
- Describes a sender.
+
- (string) Detailed description of the resource.
- (string) Globally unique identifier for the resource. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. - (string) Freeform string label for the resource.
- (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.
- (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:
/^[0-9]+:[0-9]+$/
. - (table/sender) Capabilities of this sender. +
- (string) Device ID which this Sender forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. - (string | nil) ID of the Flow currently passing via this Sender. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. interface_bindings
: (array of items) Binding of Sender egress ports to interfaces on the parent Node.. +item
: (string)
- (string | nil/uri) HTTP(S) accessible URL to a file describing how to connect to the Sender.
- (table/sender) Object indicating how this Sender is currently configured to send data. +
- (boolean) Sender is enabled and configured to send data.
- (string | nil) UUID of the Receiver to which this Sender is currently configured to send data. Only set if it is active, uses a unicast push-based transport and is sending to an NMOS Receiver; otherwise null. Must match the pattern:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
. transport
: Transport type used by the Sender in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
{ caps = { }; description = "Camera 1"; device_id = "c501ae64-f525-48b7-9816-c5e8931bc017"; flow_id = "b25d445a-20dc-4937-a8a1-5cb3d5c613ee"; id = "171d5c80-7fff-4c23-9383-46503eb1c63e"; interface_bindings = { "eth0", "eth1" }; label = "Camera 1"; manifest_href = "http://172.29.176.146/x-manufacturer/senders/171d5c80-7fff-4c23-9383-46503eb1c63e/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441723958:235623703"; }
Or
-
table/Error
(status 404) Returned when the requested Sender ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Sender ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.senders:get ()
-
List Senders.
Returns:
-
table/Senders
(status 200)
result.nil
: (array of items) Collection of Senders. A list of Sender resources. +item
: Describes a sender. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.caps
: (table/sender) Capabilities of this sender. +item.device_id
: (string) Device ID which this Sender forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.flow_id
: (string | nil) ID of the Flow currently passing via this Sender. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.interface_bindings
: (array of items) Binding of Sender egress ports to interfaces on the parent Node.. +item
: (string)
item.manifest_href
: (string | nil/uri) HTTP(S) accessible URL to a file describing how to connect to the Sender.item.subscription
: (table/sender) Object indicating how this Sender is currently configured to send data. +item.subscription.active
: (boolean) Sender is enabled and configured to send data.item.subscription.receiver_id
: (string | nil) UUID of the Receiver to which this Sender is currently configured to send data. Only set if it is active, uses a unicast push-based transport and is sending to an NMOS Receiver; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.transport
: Transport type used by the Sender in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
Example:
{ { caps = { }; description = "Camera 1"; device_id = "3a98e804-9871-4699-ba31-d608309d8933"; flow_id = "75bfddce-7142-4368-bb4a-8a82c837c6df"; id = "4002d6b5-5775-4975-9859-5b330fcea288"; interface_bindings = { "eth0", "eth1" }; label = "Camera 1"; manifest_href = "http://172.29.80.25/x-manufacturer/senders/4002d6b5-5775-4975-9859-5b330fcea288/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441724086:828491206"; }; { caps = { }; description = "Camera 2"; device_id = "c501ae64-f525-48b7-9816-c5e8931bc017"; flow_id = "b25d445a-20dc-4937-a8a1-5cb3d5c613ee"; id = "171d5c80-7fff-4c23-9383-46503eb1c63e"; interface_bindings = { "en0" }; label = "Camera 2"; manifest_href = "http://172.29.176.146/x-manufacturer/senders/171d5c80-7fff-4c23-9383-46503eb1c63e/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441723958:235623703"; }; { caps = { }; description = "Camera 2 Audio"; device_id = "5f88d383-596c-409c-887e-a90e42ef3684"; flow_id = "4ffa5719-9ab9-4395-bedb-3534fa7ba438"; id = "bb793530-8fd7-49f9-8514-314126bbc624"; interface_bindings = { "en1" }; label = "Camera 2 Audio"; manifest_href = "http://172.29.176.81/x-manufacturer/senders/bb793530-8fd7-49f9-8514-314126bbc624/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441724039:737277493"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.sources[sourceId]:get ()
-
Get a single Source.
sourceId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/Source
(status 200)
- Describes a Source. Possible content:
source_generic
: Describes a generic Source. +source_generic.description
: (string) Detailed description of the resource.source_generic.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_generic.label
: (string) Freeform string label for the resource.source_generic.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_generic.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_generic.caps
: (table/source_generic) Capabilities (not yet defined).source_generic.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_generic.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_generic.grain_rate
: (table/source_generic) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_generic.grain_rate.denominator
: (number/integer) Denominator.source_generic.grain_rate.numerator
: (number/integer) Numerator.source_generic.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_generic.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:video","urn:x-nmos:format:mux"}
.source_audio
: Describes an audio Source. +source_audio.description
: (string) Detailed description of the resource.source_audio.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_audio.label
: (string) Freeform string label for the resource.source_audio.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_audio.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_audio.caps
: (table/source_audio) Capabilities (not yet defined).source_audio.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_audio.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_audio.grain_rate
: (table/source_audio) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_audio.grain_rate.denominator
: (number/integer) Denominator.source_audio.grain_rate.numerator
: (number/integer) Numerator.source_audio.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_audio.channels
: (array of items) Array of objects describing the audio channels. +item
: (table/source_audio) +item.label
: (string) Label for this channel (free text).item.symbol
: Symbol for this channel (from VSF TR-03 Appendix A). Possible content:- (string) Possible values:
{"L","R","C","LFE","Ls","Rs","Lss","Rss","Lrs","Rrs","Lc","Rc","Cs","HI","VIN","M1","M2","Lt","Rt","Lst","Rst","S"}
.
or
- (string) Numbered Source Channel. Must match the pattern:
/^NSC(0[0-9][0-9]|1[0-1][0-9]|12[0-8])$/
.
or
- (string) Undefined channel. Must match the pattern:
/^U(0[1-9]|[1-5][0-9]|6[0-4])$/
.
- (string) Possible values:
source_audio.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:audio"}
.source_data
: Describes a data Source. +source_data.description
: (string) Detailed description of the resource.source_data.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_data.label
: (string) Freeform string label for the resource.source_data.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_data.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_data.caps
: (table/source_data) Capabilities (not yet defined).source_data.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_data.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_data.grain_rate
: (table/source_data) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_data.grain_rate.denominator
: (number/integer) Denominator.source_data.grain_rate.numerator
: (number/integer) Numerator.source_data.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_data.event_type
: (string) Event type generated by this Source, if applicable.source_data.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:data"}
.
Example:
{ caps = { }; clock_name = "clk1"; description = "Capture Card Source Video"; device_id = "65fa8c20-890e-4b86-87b2-cfd9df91b7f8"; format = "urn:x-nmos:format:video"; id = "c23c6a65-8e91-4f6c-a484-046363dbca29"; label = "CaptureCardSourceVideo"; parents = { }; tags = { Location = { "Location 1" }; SourceDeviceType = { "HD Camera" }; host = { "host1" }; }; version = "1441722516:851371645"; }
Or
-
table/Error
(status 404) Returned when the requested Source ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Source ID exists in the registry at a lower API version and a query downgrade has not been requested, or the requested downgrade does not extend as far as the resource's API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.sources:get ()
-
List Sources.
Returns:
-
table/Sources
(status 200)
result.nil
: (array of items) Collection of Sources. A list of Source resources. +item
: Describes a Source. Possible content:source_generic
: Describes a generic Source. +source_generic.description
: (string) Detailed description of the resource.source_generic.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_generic.label
: (string) Freeform string label for the resource.source_generic.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_generic.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_generic.caps
: (table/source_generic) Capabilities (not yet defined).source_generic.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_generic.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_generic.grain_rate
: (table/source_generic) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_generic.grain_rate.denominator
: (number/integer) Denominator.source_generic.grain_rate.numerator
: (number/integer) Numerator.source_generic.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_generic.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:video","urn:x-nmos:format:mux"}
.source_audio
: Describes an audio Source. +source_audio.description
: (string) Detailed description of the resource.source_audio.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_audio.label
: (string) Freeform string label for the resource.source_audio.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_audio.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_audio.caps
: (table/source_audio) Capabilities (not yet defined).source_audio.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_audio.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_audio.grain_rate
: (table/source_audio) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_audio.grain_rate.denominator
: (number/integer) Denominator.source_audio.grain_rate.numerator
: (number/integer) Numerator.source_audio.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_audio.channels
: (array of items) Array of objects describing the audio channels. +item
: (table/source_audio) +item.label
: (string) Label for this channel (free text).item.symbol
: Symbol for this channel (from VSF TR-03 Appendix A). Possible content:- (string) Possible values:
{"L","R","C","LFE","Ls","Rs","Lss","Rss","Lrs","Rrs","Lc","Rc","Cs","HI","VIN","M1","M2","Lt","Rt","Lst","Rst","S"}
.
or
- (string) Numbered Source Channel. Must match the pattern:
/^NSC(0[0-9][0-9]|1[0-1][0-9]|12[0-8])$/
.
or
- (string) Undefined channel. Must match the pattern:
/^U(0[1-9]|[1-5][0-9]|6[0-4])$/
.
- (string) Possible values:
source_audio.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:audio"}
.source_data
: Describes a data Source. +source_data.description
: (string) Detailed description of the resource.source_data.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_data.label
: (string) Freeform string label for the resource.source_data.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.source_data.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.source_data.caps
: (table/source_data) Capabilities (not yet defined).source_data.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.source_data.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.source_data.grain_rate
: (table/source_data) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +source_data.grain_rate.denominator
: (number/integer) Denominator.source_data.grain_rate.numerator
: (number/integer) Numerator.source_data.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
source_data.event_type
: (string) Event type generated by this Source, if applicable.source_data.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:data"}
.
Example:
{ { caps = { }; clock_name = "clk0"; description = "Camera 1"; device_id = "21a28338-fb2e-4df5-9b55-d58e6124bc9f"; format = "urn:x-nmos:format:video"; id = "042a4126-0208-443d-bda6-833ffc27ed51"; label = "Camera 1"; parents = { }; tags = { SourceDeviceType = { "UHD Camera" }; host = { "host1" }; location = { "Location 1" }; }; version = "1441724551:288670563"; }; { caps = { }; clock_name = "clk0"; description = "Camera 2"; device_id = "65fa8c20-890e-4b86-87b2-cfd9df91b7f8"; format = "urn:x-nmos:format:video"; id = "c23c6a65-8e91-4f6c-a484-046363dbca29"; label = "CaptureCardSourceVideo"; parents = { }; tags = { Location = { "Location 2" }; SourceDeviceType = { "HD Camera" }; host = { "host2" }; }; version = "1441722516:851371645"; }; { caps = { }; channels = { { label = "Left Channel", symbol = "L" }; { label = "Right Channel", symbol = "R" }; }; clock_name = "clk0"; description = "Audio 1"; device_id = "e7aa15c4-f793-4d43-a0cb-c638db6215ac"; format = "urn:x-nmos:format:audio"; id = "62cf8dd3-015b-49e3-84c1-1d866a7540bc"; label = "Audio 1"; parents = { }; tags = { host = { "host3" }; }; version = "1441719058:3226205"; }; { caps = { }; clock_name = "clk0"; description = "Capture Card Source TR-04/2022-6"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "782fac41-17f6-4a21-8186-57ba63a1a8d3"; label = "Capture Card Source TR-04/2022-6"; parents = { }; tags = { host = { "host1" }; }; version = "1453880605:374934072"; }; { caps = { }; description = "Capture Card Source 2022-6 (No Refclock)"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "3ca37fce-c0cf-42a6-86ad-43635a53b5bb"; label = "Capture Card Source 2022-6 (No Refclock)"; parents = { }; tags = { host = { "host1" }; }; version = "1453880605:374934072"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.subscriptions[subscriptionId]:delete ()
-
Delete a single subscription.
subscriptionId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table
(status 204)
result.body
: (string) Empty string.result.status
: (number) 204.
result
The expected response, indicating 'No Content' following the DELETE +Or
-
table/Error
(status 403) Returned when a DELETE request is made against a non-persistent subscription which is managed by the Query API and cannot be deleted
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 404) Returned when the requested Subscription ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Subscription ID exists in the registry at a different API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.subscriptions[subscriptionId]:get ()
-
Get a single subscription (for debug use only).
subscriptionId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
-
table/queryapi_subscription_response
(status 200)
+
result.authorization
: (boolean) Whether the WebSocket connection requires authorization.result.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.result.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.result.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.result.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.result.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.result.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.result.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
{ authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }
Or
-
table/Error
(status 404) Returned when the requested Subscription ID does not exist
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 409) Returned when the requested Subscription ID exists in the registry at a different API version. The correct API version is identified via the Location header.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- api.subscriptions[subscriptionId]:options ()
-
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes.
subscriptionId
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.Returns:
Or
- api.subscriptions:get ()
-
List available WebSocket connections providing real-time updates on resource changes (for debug use only).
Returns:
-
table/queryapi_subscriptions_response[]
(status 200)
result.nil
: (array of items) Collection of subscriptions. A list of subscription resources. +item
: (table/queryapi_subscription_response) A single subscription to a Query API. +item.authorization
: (boolean) Whether the WebSocket connection requires authorization.item.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.item.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.item.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.item.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.item.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.item.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
Example:
{ { authorization = false; id = "6a52dbd5-a737-4c4e-823f-909ade8f8bf4"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/receivers"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=6a52dbd5-a737-4c4e-823f-909ade8f8bf4"; }; { authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }; { authorization = false; id = "c5f5c1ad-f9e6-44c0-828f-da3f7cdef286"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/senders"; secure = true; ws_href = "wss://172.29.80.52:8870/ws/?uid=c5f5c1ad-f9e6-44c0-828f-da3f7cdef286"; }; { authorization = false; id = "b0416004-f825-4623-bf90-575b5dd32f93"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/flows"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=b0416004-f825-4623-bf90-575b5dd32f93"; }; }
- api.subscriptions:options ()
-
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes.
Returns:
Or
- api.subscriptions:post (payload)
-
Create a WebSocket subscription to an API resource.
Parameters:
- payload (table) nil
args.payload
: (table/queryapi_subscriptions_post_request) Create a new subscription to a Query API. +args.payload.authorization
: (boolean) Whether the WebSocket connection requires authorization. NB: Default should be 'true' if the API requires authorization, and 'false' otherwise.args.payload.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.args.payload.params
: (table/queryapi_subscriptions_post_request) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.args.payload.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.args.payload.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.args.payload.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required. NB: Default should be 'true' if the API is being presented via HTTPS, and 'false' otherwise.
Returns:
-
table/queryapi_subscription_response
(status 200)
+
result.authorization
: (boolean) Whether the WebSocket connection requires authorization.result.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.result.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.result.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.result.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.result.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.result.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.result.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
{ authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }
Or
-
table/queryapi_subscription_response
(status 201)
+
result.authorization
: (boolean) Whether the WebSocket connection requires authorization.result.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.result.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.result.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.result.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.result.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.result.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.result.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
{ authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }
Or
-
table/Error
(status 400) Returned when the POST request is incorrectly formatted, missing mandatory attributes or an attribute is invalid given the API's configuration
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Usage:
query = require "lua-repl.lib.rest.nmos.query" api = query:create_api("http://query.nmos.acme.example.com") payload = { max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; } result = api.subscriptions:post(payload)
- lua-repl.lib.rest.nmos.query.api:get ()
-
List of paths available from this API.
Returns:
-
table/queryapi_base[]
(status 200)
result.nil
: (array of items) Query API base resource. Describes the Query API base resource. +item
: (string) Possible values:{"nodes/","sources/","flows/","devices/","senders/","receivers/","subscriptions/"}
.
Example:
{ "subscriptions/"; "flows/"; "sources/"; "nodes/"; "devices/"; "senders/"; "receivers/"; }
- lua-repl.lib.rest.nmos.query.api:get_devices ()
-
List Devices.
This function is alias forapi.devices:get()
.Returns:
-
table/Devices
(status 200)
result.nil
: (array of items) Collection of Devices. A list of Device resources. +item
: Describes a Device. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.controls
: (array of items) Control endpoints exposed for the Device. +item
: (table/device) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a control endpoint, whether http or otherwise.item.type
: (string/uri) URN identifying the control format.
item.node_id
: (string) Globally unique identifier for the Node which initially created the Device. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.receivers
: (array of items) UUIDs of Receivers attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.senders
: (array of items) UUIDs of Senders attached to the Device (deprecated). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.type
: Device type URN. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:device:/
.
or
- (any)
- (string) Must match the pattern:
Example:
{ { controls = { { href = "http://124.54.36.2:465"; type = "urn:x-manufacturer:control:generic"; }; }; description = "pipeline 1 default device"; id = "c501ae64-f525-48b7-9816-c5e8931bc017"; label = "pipeline 1 default device"; node_id = "1d452562-e1d5-4e84-b057-5c24de5f6b48"; receivers = { }; senders = { "c72cca5b-01db-47aa-bb00-03893defbfae"; "171d5c80-7fff-4c23-9383-46503eb1c63e"; "a2655c48-8a46-4c82-b9bc-98760d59d7f8"; }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441723957:582701772"; }; { controls = { }; description = "pipeline 1 default device"; id = "a30e4fba-254a-4e97-8bf7-daec80b8e57f"; label = "pipeline 1 default device"; node_id = "3b8be755-08ff-452b-b217-c9151eb21193"; receivers = { }; senders = { }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441976012:727999141"; }; { controls = { }; description = "pipeline 1 default device"; id = "e19ef82c-5f0a-48da-a86c-bb2377ab09a4"; label = "pipeline 1 default device"; node_id = "4cf38bb4-d6c4-48d6-a086-6eac45d73ae5"; receivers = { "a383178a-76cc-4894-9121-dc390c7847d3" }; senders = { "24da6ba7-b0aa-4883-a89a-2b867328dbf9" }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441722334:834709519"; }; { controls = { { authorization = false; href = "wss://154.67.62.2:4635"; type = "urn:x-manufacturer:control:generic"; }; }; description = "pipeline 1 default device"; id = "a370d258-69de-4422-860a-ee4cf32ee9f4"; label = "pipeline 1 default device"; node_id = "3a25a674-e6eb-4987-84ad-ef479fe4d527"; receivers = { "863532de-a97d-4597-989a-e79688f2d5f9"; "632d7e6d-7357-44de-a425-a94fbe94974e"; "95ef711b-564d-4655-a98b-5b9ccfb419d7"; "9ee74607-f831-42f5-af08-a614ce0706df"; "1311bf13-869c-45b4-915e-8b4e8b8e26fd"; "debcd758-129d-4e0b-a0e3-f1d9ce5edfbc"; "0fee9741-e266-4c27-b480-1f897463ea4b"; "ef9e58bd-431a-466d-a67f-0318858b981c"; "68ca0867-ec4b-4eca-92e0-4c4c668a72b0"; }; senders = { }; tags = { }; type = "urn:x-nmos:device:pipeline"; version = "1441723676:366608283"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_flows ()
-
List Flows.
This function is alias forapi.flows:get()
.Returns:
-
table/Flows
(status 200)
result.nil
: (array of items) Collection of Flows. A list of Flow resources. +item
: Describes a Flow. Possible content: +item
: Describes a raw Video Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_video_raw) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.colorspace
: Colorspace used for the video. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"BT601","BT709","BT2020","BT2100"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:video"}
.item.frame_height
: (number/integer) Height of the picture in pixels.item.frame_width
: (number/integer) Width of the picture in pixels.item.interlace_mode
: (string) Interlaced video mode for frames in this Flow. Possible values:{"progressive","interlaced_tff","interlaced_bff","interlaced_psf"}
.item.transfer_characteristic
: Transfer characteristic. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"SDR","HLG","PQ"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.components
: (array of items) Array of objects describing the components. +item
: (table/flow_video_raw) +item.bit_depth
: (number/integer) Number of bits used to describe each sample.item.height
: (number/integer) Height of this component in pixels.item.name
: (string) Name of this component. Possible values:{"Y","Cb","Cr","I","Ct","Cp","A","R","G","B","DepthMap"}
.item.width
: (number/integer) Width of this component in pixels.
item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"video/raw"}
.item
: Describes a coded Video Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_video_coded) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.colorspace
: Colorspace used for the video. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"BT601","BT709","BT2020","BT2100"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:video"}
.item.frame_height
: (number/integer) Height of the picture in pixels.item.frame_width
: (number/integer) Width of the picture in pixels.item.interlace_mode
: (string) Interlaced video mode for frames in this Flow. Possible values:{"progressive","interlaced_tff","interlaced_bff","interlaced_psf"}
.item.transfer_characteristic
: Transfer characteristic. Any values not defined in the enum should be defined in the NMOS Parameter Registers. Possible content: +- (string) Possible values:
{"SDR","HLG","PQ"}
.
or
- (string) Must match the pattern:
/^\S+$/
.
- (string) Possible values:
item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"video/H264","video/vc2"}
.
or
- (string) Must match the pattern:
/^video\/[^\s\/]+$/
.
- (string) Possible values:
item
: Describes a raw audio Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_audio_raw) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:audio"}
.item.sample_rate
: (table/flow_audio_raw) Number of audio samples per second for this Flow. +item.sample_rate.denominator
: (number/integer) Denominator.item.sample_rate.numerator
: (number/integer) Numerator.item.bit_depth
: (number/integer) Bit depth of the audio samples.item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"audio/L24","audio/L20","audio/L16","audio/L8"}
.
or
- (string) Must match the pattern:
/^audio\/[^\s\/]+$/
.
- (string) Possible values:
item
: Describes a coded audio Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_audio_coded) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:audio"}
.item.sample_rate
: (table/flow_audio_coded) Number of audio samples per second for this Flow. +item.sample_rate.denominator
: (number/integer) Denominator.item.sample_rate.numerator
: (number/integer) Numerator.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Must match the pattern:/^audio\/[^\s\/]+$/
.item
: Describes a generic data Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Must match the pattern:/^[^\s\/]+\/[^\s\/]+$/
.item
: Describes an SDI ancillary Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_sdianc_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.DID_SDID
: (array of items) List of Data identification and Secondary data identification words. +item
: (table/flow_sdianc_data) +item.DID
: (string) Data identification word. Must match the pattern:/^0x[0-9a-fA-F]{2}$/
.item.SDID
: (string) Secondary data identification word. Must match the pattern:/^0x[0-9a-fA-F]{2}$/
.
item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"video/smpte291"}
.item
: Describes a JSON based Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_json_data) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.event_type
: (string) Event type generated by this Flow, if applicable.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:data"}
.item.media_type
: (string) Subclassification of the format using IANA assigned media types. Possible values:{"application/json"}
.item
: Describes a mux Flow. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.device_id
: (string) Globally unique identifier for the Device which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.1 onwards). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.grain_rate
: (table/flow_mux) Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only. +item.grain_rate.denominator
: (number/integer) Denominator.item.grain_rate.numerator
: (number/integer) Numerator.item.parents
: (array of items) Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
item.source_id
: (string) Globally unique identifier for the Source which initially created the Flow. This attribute is used to ensure referential integrity by registry implementations (v1.0 only). Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.format
: (string/uri) Format of the data coming from the Flow as a URN. Possible values:{"urn:x-nmos:format:mux"}
.item.media_type
: Subclassification of the format using IANA assigned media types. Possible content: +- (string) Possible values:
{"video/SMPTE2022-6"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
Example:
{ { colorspace = "BT709"; description = "Off-air proxy"; device_id = "a711ddd3-376d-4d6d-934d-834e54e045b1"; format = "urn:x-nmos:format:video"; frame_height = 540; frame_width = 960; id = "0c1f03d7-7e94-4b21-94d1-3ffbee8a0606"; interlace_mode = "interlaced_tff"; label = "Off-air proxy"; media_type = "video/H264"; parents = { }; source_id = "c7b1c809-84d4-427d-b6bb-c8397c66ce2b"; tags = { }; version = "1441724130:194944510"; }; { colorspace = "BT709"; components = { { bit_depth = 10, height = 1080, name = "Y", width = 1920 }; { bit_depth = 10, height = 1080, name = "Cb", width = 960 }; { bit_depth = 10, height = 1080, name = "Cr", width = 960 }; }; description = "Off-air"; device_id = "a711ddd3-376d-4d6d-934d-834e54e045b1"; format = "urn:x-nmos:format:video"; frame_height = 1080; frame_width = 1920; id = "0e85d87b-4b19-4452-aea3-984c9f94bbc9"; interlace_mode = "interlaced_tff"; label = "Off-air"; media_type = "video/raw"; parents = { }; source_id = "c7b1c809-84d4-427d-b6bb-c8397c66ce2b"; tags = { }; version = "1441724130:186085940"; }; { bit_depth = 16; description = "Capture Audio Proxy"; device_id = "169feb2c-3fae-42a5-ae2e-f6f8cbce29cf"; format = "urn:x-nmos:format:audio"; id = "b3bb5be7-9fe9-4324-a5bb-4c70e1084449"; label = "Capture Audio Proxy"; media_type = "audio/L16"; parents = { }; sample_rate = { numerator = 48000 }; source_id = "2aa143ac-0ab7-4d75-bc32-5c00c13d186f"; tags = { host = { "host1" }; }; version = "1441812152:154331951"; }; { description = "TR-04 Video"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "4857f747-96cf-4ed7-8f4b-9497199f1f25"; label = "TR-04 Video"; media_type = "video/SMPTE2022-6"; parents = { }; source_id = "782fac41-17f6-4a21-8186-57ba63a1a8d3"; tags = { }; version = "1453880607:123995943"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_nodes ()
-
List Nodes.
This function is alias forapi.nodes:get()
.Returns:
-
table/Nodes
(status 200)
result.nil
: (array of items) Collection of Nodes. A list of Node resources. +item
: Describes the Node and the services which run on it. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.api
: (table/node) URL fragments required to connect to the Node API. +item.api.endpoints
: (array of items) Host, port and protocol details required to connect to the API. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.host
: IP address or hostname which the Node API is running on. Possible content: +- (string/hostname) or
- (string/ipv4) or
- (string/ipv6)
item.port
: (number/integer) Port number which the Node API is running on. Minimum:1
. Maximum:65535
.item.protocol
: (string) Protocol supported by this instance of the Node API. Possible values:{"http","https"}
.
item.api.versions
: (array of items) Supported API versions running on this Node. +item
: (string) Must match the pattern:/^v[0-9]+\.[0-9]+$/
.
item.caps
: (table/node) Capabilities (not yet defined).item.clocks
: (array of items) Clocks made available to Devices owned by this Node. +item
: Possible content: +- (table/clock_internal) Describes a clock with no external reference. +
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"internal"}
. - (table/clock_ptp) Describes a clock referenced to PTP. +
- (string) ID of the PTP reference used by this clock. Must match the pattern:
/^[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}$/
. - (boolean) Lock state of this clock to the external reference. If true, this device follows the external reference, otherwise it has no defined relationship to the external reference.
- (string) Name of this refclock (unique for this set of clocks). Must match the pattern:
/^clk[0-9]+$/
. - (string) Type of external reference used by this clock. Possible values:
{"ptp"}
. - (boolean) External refclock is synchronised to International Atomic Time (TAI).
- (string) Version of PTP reference used by this clock. Possible values:
{"IEEE1588-2008"}
.
- (table/clock_internal) Describes a clock with no external reference. +
item.hostname
: (string/hostname) Node hostname (optional, deprecated).item.href
: (string/uri) HTTP access href for the Node's API (deprecated).item.interfaces
: (array of items) Network interfaces made available to devices owned by this Node. Port IDs and Chassis IDs are used to inform topology discovery via IS-06, and require that interfaces implement ARP at a minimum, and ideally LLDP.. +item
: (table/node) +item.attached_network_device
: (table/node) +item.attached_network_device.chassis_id
: Chassis ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.attached_network_device.port_id
: Port ID of the attached network device, as signalled in LLDP received by this Node. Possible content: +- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Port ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
- (string) When the Port ID is a MAC address, use this format. Must match the pattern:
item.chassis_id
: Chassis ID of the interface, as signalled in LLDP from this node. Set to null where LLDP is unsuitable for use (ie. virtualised environments). Possible content: +- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
or
- (string) When the Chassis ID is anything other than a MAC address, a freeform string may be used. Must match the pattern:
/^.+$/
.
or
- (nil) When the Chassis ID is unavailable it should be set to null.
- (string) When the Chassis ID is a MAC address, use this format. Must match the pattern:
item.name
: (string) Name of the interface (unique in scope of this node). This attribute is used by sub-resources of this node such as senders and receivers to refer to interfaces to which they are bound.item.port_id
: (string) Port ID of the interface, as signalled in LLDP or via ARP responses from this node. Must be a MAC address. Must match the pattern:/^([0-9a-f]{2}-){5}([0-9a-f]{2})$/
.
item.services
: (array of items) Array of objects containing a URN format type and href. +item
: (table/node) +item.authorization
: (boolean) This endpoint requires authorization.item.href
: (string/uri) URL to reach a service running on the Node.item.type
: (string/uri) URN identifying the type of service.
Example:
{ { api = { endpoints = { { host = "172.29.176.102", port = 12345, protocol = "http" }; }; versions = { "v1.1", "v1.2", "v1.3" }; }; caps = { }; clocks = { { gmid = "08-00-11-ff-fe-21-e1-b0"; locked = true; name = "clk0"; ref_type = "ptp"; traceable = false; version = "IEEE1588-2008"; }; }; description = "host1"; hostname = "host1"; href = "http://172.29.176.102:12345/"; id = "c8ba20e9-e197-4ec5-8764-4da672128589"; interfaces = { { chassis_id = "74-26-96-db-87-31"; name = "eth0"; port_id = "74-26-96-db-87-31"; }; { chassis_id = "74-26-96-db-87-31"; name = "eth1"; port_id = "74-26-96-db-87-32"; }; }; label = "host1"; services = { { href = "http://172.29.176.102:12345/x-manufacturer/status/"; type = "urn:x-manufacturer:service:status"; }; { href = "http://172.29.176.102:12345/x-manufacturer/pipelinemanager/"; type = "urn:x-manufacturer:service:pipelinemanager"; }; { href = "http://172.29.176.102:12345/x-manufacturer/mdnsbridge/"; type = "urn:x-manufacturer:service:mdnsbridge"; }; }; tags = { }; version = "1441716120:318744030"; }; { api = { endpoints = { { host = "172.29.176.19", port = 12345, protocol = "http" }; }; versions = { "v1.1", "v1.2", "v1.3" }; }; caps = { }; clocks = { { gmid = "08-00-11-ff-fe-21-e1-b0"; locked = true; name = "clk0"; ref_type = "ptp"; traceable = false; version = "IEEE1588-2008"; }; }; description = "host2"; hostname = "host2"; href = "http://172.29.176.19:12345/"; id = "cebc6305-e8db-4026-aeb5-eb7a5620839e"; interfaces = { { chassis_id = "a4-26-84-db-58-31"; name = "en0"; port_id = "a4-26-84-db-58-31"; }; { chassis_id = "a4-26-84-db-58-31"; name = "en1"; port_id = "a4-26-84-db-58-32"; }; }; label = "host2"; services = { { href = "http://172.29.176.19:12345/x-manufacturer/pipelinemanager/"; type = "urn:x-manufacturer:service:pipelinemanager"; }; { href = "http://172.29.176.19:12345/x-manufacturer/status/"; type = "urn:x-manufacturer:service:status"; }; { href = "http://172.29.176.19:12345/x-manufacturer/mdnsbridge/"; type = "urn:x-manufacturer:service:mdnsbridge"; }; }; tags = { }; version = "1441716067:450064243"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_receivers ()
-
List Receivers.
This function is alias forapi.receivers:get()
.Returns:
-
table/Receivers
(status 200)
result.nil
: (array of items) Collection of Receivers. A list of Receiver resources. +item
: Describes a Receiver. Possible content:alt1
: Describes a video Receiver. +alt1.description
: (string) Detailed description of the resource.alt1.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt1.label
: (string) Freeform string label for the resource.alt1.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt1.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt1.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt1.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
alt1.subscription
: (table/receiver_video) Object indicating how this Receiver is currently configured to receive data. +alt1.subscription.active
: (boolean) Receiver is enabled and configured to receive data.alt1.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt1.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
alt1.caps
: (table/receiver_video) Capabilities. +alt1.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/raw","video/H264","video/vc2"}
.
or
- (string) Must match the pattern:
/^video\/[^\s\/]+$/
.
- (string) Possible values:
alt1.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:video"}
.alt2
: Describes an audio Receiver. +alt2.description
: (string) Detailed description of the resource.alt2.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt2.label
: (string) Freeform string label for the resource.alt2.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt2.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt2.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt2.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
alt2.subscription
: (table/receiver_audio) Object indicating how this Receiver is currently configured to receive data. +alt2.subscription.active
: (boolean) Receiver is enabled and configured to receive data.alt2.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt2.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
alt2.caps
: (table/receiver_audio) Capabilities. +alt2.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"audio/L24","audio/L20","audio/L16","audio/L8"}
.
or
- (string) Must match the pattern:
/^audio\/[^\s\/]+$/
.
- (string) Possible values:
alt2.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:audio"}
.alt3
: Describes a data Receiver. +alt3.description
: (string) Detailed description of the resource.alt3.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt3.label
: (string) Freeform string label for the resource.alt3.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt3.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt3.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt3.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
alt3.subscription
: (table/receiver_data) Object indicating how this Receiver is currently configured to receive data. +alt3.subscription.active
: (boolean) Receiver is enabled and configured to receive data.alt3.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt3.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
alt3.caps
: (table/receiver_data) Capabilities. +alt3.caps.event_types
: (array of items) Subclassification of the event types accepted defined by the AMWA IS-07 specification. +item
: (string)
alt3.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/smpte291","application/json"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
alt3.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:data"}
.alt4
: Describes a mux Receiver. +alt4.description
: (string) Detailed description of the resource.alt4.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt4.label
: (string) Freeform string label for the resource.alt4.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt4.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt4.device_id
: (string) Device ID which this Receiver forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt4.interface_bindings
: (array of items) Binding of Receiver ingress ports to interfaces on the parent Node.. +item
: (string)
alt4.subscription
: (table/receiver_mux) Object indicating how this Receiver is currently configured to receive data. +alt4.subscription.active
: (boolean) Receiver is enabled and configured to receive data.alt4.subscription.sender_id
: (string | nil) UUID of the Sender from which this Receiver is currently configured to receive data. Only set if it is active and receiving from an NMOS Sender; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt4.transport
: Transport type accepted by the Receiver in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
alt4.caps
: (table/receiver_mux) Capabilities. +alt4.caps.media_types
: (array of items) Subclassification of the formats accepted using IANA assigned media types. +item
: Possible content: +- (string) Possible values:
{"video/SMPTE2022-6"}
.
or
- (string) Must match the pattern:
/^[^\s\/]+\/[^\s\/]+$/
.
- (string) Possible values:
alt4.format
: (string/uri) Type of Flow accepted by the Receiver as a URN. Possible values:{"urn:x-nmos:format:mux"}
.
Example:
{ { caps = { media_types = { "video/raw" }; }; description = "RTP receiver 1"; device_id = "0d0cb97e-b96a-4a39-887f-d491492d9081"; format = "urn:x-nmos:format:video"; id = "3350d113-1593-4271-a7f5-f4974415bb8e"; interface_bindings = { "en0", "en1" }; label = "Viewer 1"; subscription = { active = true, sender_id = "55311762-8003-48fa-a645-0a0c7621ce45" }; tags = { Location = { "Location 1" }; }; transport = "urn:x-nmos:transport:rtp"; version = "1441895693:480000000"; }; { caps = { media_types = { "video/raw" }; }; description = "RTP receiver 2"; device_id = "76aa31e5-c3a4-4639-8dbb-98a86dc32942"; format = "urn:x-nmos:format:video"; id = "3a1be8bd-6077-4933-aa7a-b42b13bdbe8e"; interface_bindings = { "eth0", "eth1" }; label = "Viewer 2"; subscription = { active = true, sender_id = "a325cfe1-47ee-4a23-9a5c-7b5fcb9c2bb2" }; tags = { Location = { "Location 2" }; }; transport = "urn:x-nmos:transport:rtp"; version = "1441726973:353560292"; }; { caps = { media_types = { "audio/L24", "audio/L16" }; }; description = "Audio RX"; device_id = "e19ef82c-5f0a-48da-a86c-bb2377ab09a4"; format = "urn:x-nmos:format:audio"; id = "a383178a-76cc-4894-9121-dc390c7847d3"; interface_bindings = { "eth0" }; label = "Audio RX"; subscription = { active = false }; tags = { }; transport = "urn:x-nmos:transport:rtp"; version = "1441722334:801293520"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_senders ()
-
List Senders.
This function is alias forapi.senders:get()
.Returns:
-
table/Senders
(status 200)
result.nil
: (array of items) Collection of Senders. A list of Sender resources. +item
: Describes a sender. +item.description
: (string) Detailed description of the resource.item.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.label
: (string) Freeform string label for the resource.item.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.item.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.item.caps
: (table/sender) Capabilities of this sender. +item.device_id
: (string) Device ID which this Sender forms part of. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.flow_id
: (string | nil) ID of the Flow currently passing via this Sender. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.interface_bindings
: (array of items) Binding of Sender egress ports to interfaces on the parent Node.. +item
: (string)
item.manifest_href
: (string | nil/uri) HTTP(S) accessible URL to a file describing how to connect to the Sender.item.subscription
: (table/sender) Object indicating how this Sender is currently configured to send data. +item.subscription.active
: (boolean) Sender is enabled and configured to send data.item.subscription.receiver_id
: (string | nil) UUID of the Receiver to which this Sender is currently configured to send data. Only set if it is active, uses a unicast push-based transport and is sending to an NMOS Receiver; otherwise null. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.transport
: Transport type used by the Sender in URN format. Possible content:- (string) Must match the pattern:
/^urn:x-nmos:transport:/
.
or
- (any)
- (string) Must match the pattern:
Example:
{ { caps = { }; description = "Camera 1"; device_id = "3a98e804-9871-4699-ba31-d608309d8933"; flow_id = "75bfddce-7142-4368-bb4a-8a82c837c6df"; id = "4002d6b5-5775-4975-9859-5b330fcea288"; interface_bindings = { "eth0", "eth1" }; label = "Camera 1"; manifest_href = "http://172.29.80.25/x-manufacturer/senders/4002d6b5-5775-4975-9859-5b330fcea288/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441724086:828491206"; }; { caps = { }; description = "Camera 2"; device_id = "c501ae64-f525-48b7-9816-c5e8931bc017"; flow_id = "b25d445a-20dc-4937-a8a1-5cb3d5c613ee"; id = "171d5c80-7fff-4c23-9383-46503eb1c63e"; interface_bindings = { "en0" }; label = "Camera 2"; manifest_href = "http://172.29.176.146/x-manufacturer/senders/171d5c80-7fff-4c23-9383-46503eb1c63e/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441723958:235623703"; }; { caps = { }; description = "Camera 2 Audio"; device_id = "5f88d383-596c-409c-887e-a90e42ef3684"; flow_id = "4ffa5719-9ab9-4395-bedb-3534fa7ba438"; id = "bb793530-8fd7-49f9-8514-314126bbc624"; interface_bindings = { "en1" }; label = "Camera 2 Audio"; manifest_href = "http://172.29.176.81/x-manufacturer/senders/bb793530-8fd7-49f9-8514-314126bbc624/stream.sdp"; subscription = { active = true }; tags = { }; transport = "urn:x-nmos:transport:rtp.mcast"; version = "1441724039:737277493"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_sources ()
-
List Sources.
This function is alias forapi.sources:get()
.Returns:
-
table/Sources
(status 200)
result.nil
: (array of items) Collection of Sources. A list of Source resources. +item
: Describes a Source. Possible content:alt1
: Describes a generic Source. +alt1.description
: (string) Detailed description of the resource.alt1.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt1.label
: (string) Freeform string label for the resource.alt1.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt1.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt1.caps
: (table/source_generic) Capabilities (not yet defined).alt1.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.alt1.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt1.grain_rate
: (table/source_generic) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +alt1.grain_rate.denominator
: (number/integer) Denominator.alt1.grain_rate.numerator
: (number/integer) Numerator.alt1.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
alt1.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:video","urn:x-nmos:format:mux"}
.alt2
: Describes an audio Source. +alt2.description
: (string) Detailed description of the resource.alt2.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt2.label
: (string) Freeform string label for the resource.alt2.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt2.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt2.caps
: (table/source_audio) Capabilities (not yet defined).alt2.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.alt2.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt2.grain_rate
: (table/source_audio) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +alt2.grain_rate.denominator
: (number/integer) Denominator.alt2.grain_rate.numerator
: (number/integer) Numerator.alt2.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
alt2.channels
: (array of items) Array of objects describing the audio channels. +item
: (table/source_audio) +item.label
: (string) Label for this channel (free text).item.symbol
: Symbol for this channel (from VSF TR-03 Appendix A). Possible content:- (string) Possible values:
{"L","R","C","LFE","Ls","Rs","Lss","Rss","Lrs","Rrs","Lc","Rc","Cs","HI","VIN","M1","M2","Lt","Rt","Lst","Rst","S"}
.
or
- (string) Numbered Source Channel. Must match the pattern:
/^NSC(0[0-9][0-9]|1[0-1][0-9]|12[0-8])$/
.
or
- (string) Undefined channel. Must match the pattern:
/^U(0[1-9]|[1-5][0-9]|6[0-4])$/
.
- (string) Possible values:
alt2.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:audio"}
.alt3
: Describes a data Source. +alt3.description
: (string) Detailed description of the resource.alt3.id
: (string) Globally unique identifier for the resource. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt3.label
: (string) Freeform string label for the resource.alt3.tags
: (table/resource_core) Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.alt3.version
: (string) String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed. Must match the pattern:/^[0-9]+:[0-9]+$/
.alt3.caps
: (table/source_data) Capabilities (not yet defined).alt3.clock_name
: (string | nil) Reference to clock in the originating Node. Must match the pattern:/^clk[0-9]+$/
.alt3.device_id
: (string) Globally unique identifier for the Device which initially created the Source. This attribute is used to ensure referential integrity by registry implementations. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.alt3.grain_rate
: (table/source_data) Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only. +alt3.grain_rate.denominator
: (number/integer) Denominator.alt3.grain_rate.numerator
: (number/integer) Numerator.alt3.parents
: (array of items) Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source). +item
: (string) Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.
alt3.event_type
: (string) Event type generated by this Source, if applicable.alt3.format
: (string/uri) Format of the data coming from the Source as a URN. Possible values:{"urn:x-nmos:format:data"}
.
Example:
{ { caps = { }; clock_name = "clk0"; description = "Camera 1"; device_id = "21a28338-fb2e-4df5-9b55-d58e6124bc9f"; format = "urn:x-nmos:format:video"; id = "042a4126-0208-443d-bda6-833ffc27ed51"; label = "Camera 1"; parents = { }; tags = { SourceDeviceType = { "UHD Camera" }; host = { "host1" }; location = { "Location 1" }; }; version = "1441724551:288670563"; }; { caps = { }; clock_name = "clk0"; description = "Camera 2"; device_id = "65fa8c20-890e-4b86-87b2-cfd9df91b7f8"; format = "urn:x-nmos:format:video"; id = "c23c6a65-8e91-4f6c-a484-046363dbca29"; label = "CaptureCardSourceVideo"; parents = { }; tags = { Location = { "Location 2" }; SourceDeviceType = { "HD Camera" }; host = { "host2" }; }; version = "1441722516:851371645"; }; { caps = { }; channels = { { label = "Left Channel", symbol = "L" }; { label = "Right Channel", symbol = "R" }; }; clock_name = "clk0"; description = "Audio 1"; device_id = "e7aa15c4-f793-4d43-a0cb-c638db6215ac"; format = "urn:x-nmos:format:audio"; id = "62cf8dd3-015b-49e3-84c1-1d866a7540bc"; label = "Audio 1"; parents = { }; tags = { host = { "host3" }; }; version = "1441719058:3226205"; }; { caps = { }; clock_name = "clk0"; description = "Capture Card Source TR-04/2022-6"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "782fac41-17f6-4a21-8186-57ba63a1a8d3"; label = "Capture Card Source TR-04/2022-6"; parents = { }; tags = { host = { "host1" }; }; version = "1453880605:374934072"; }; { caps = { }; description = "Capture Card Source 2022-6 (No Refclock)"; device_id = "9126cc2f-4c26-4c9b-a6cd-93c4381c9be5"; format = "urn:x-nmos:format:mux"; id = "3ca37fce-c0cf-42a6-86ad-43635a53b5bb"; label = "Capture Card Source 2022-6 (No Refclock)"; parents = { }; tags = { host = { "host1" }; }; version = "1453880605:374934072"; }; }
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
- lua-repl.lib.rest.nmos.query.api:get_subscriptions ()
-
List available WebSocket connections providing real-time updates on resource changes (for debug use only).
This function is alias for
api.subscriptions:get()
.Returns:
-
table/queryapi_subscriptions_response[]
(status 200)
result.nil
: (array of items) Collection of subscriptions. A list of subscription resources. +item
: (table/queryapi_subscription_response) A single subscription to a Query API. +item.authorization
: (boolean) Whether the WebSocket connection requires authorization.item.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.item.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.item.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.item.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.item.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.item.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.item.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
Example:
{ { authorization = false; id = "6a52dbd5-a737-4c4e-823f-909ade8f8bf4"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/receivers"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=6a52dbd5-a737-4c4e-823f-909ade8f8bf4"; }; { authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }; { authorization = false; id = "c5f5c1ad-f9e6-44c0-828f-da3f7cdef286"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/senders"; secure = true; ws_href = "wss://172.29.80.52:8870/ws/?uid=c5f5c1ad-f9e6-44c0-828f-da3f7cdef286"; }; { authorization = false; id = "b0416004-f825-4623-bf90-575b5dd32f93"; max_update_rate_ms = 100; params = { }; persist = false; resource_path = "/flows"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=b0416004-f825-4623-bf90-575b5dd32f93"; }; }
- lua-repl.lib.rest.nmos.query.api:options_subscriptions ()
-
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes.
This function is alias for
api.subscriptions:options()
.Returns:
Or
- lua-repl.lib.rest.nmos.query.api:subscriptions (payload)
-
Create a WebSocket subscription to an API resource.
This function is alias for
api.subscriptions:post(payload)
.Parameters:
- payload (table) nil
args.payload
: (table/queryapi_subscriptions_post_request) Create a new subscription to a Query API. +args.payload.authorization
: (boolean) Whether the WebSocket connection requires authorization. NB: Default should be 'true' if the API requires authorization, and 'false' otherwise.args.payload.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.args.payload.params
: (table/queryapi_subscriptions_post_request) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.args.payload.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.args.payload.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.args.payload.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required. NB: Default should be 'true' if the API is being presented via HTTPS, and 'false' otherwise.
Returns:
-
table/queryapi_subscription_response
(status 200)
+
result.authorization
: (boolean) Whether the WebSocket connection requires authorization.result.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.result.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.result.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.result.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.result.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.result.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.result.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
{ authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }
Or
-
table/queryapi_subscription_response
(status 201)
+
result.authorization
: (boolean) Whether the WebSocket connection requires authorization.result.id
: (string) Globally unique identifier for the subscription. Must match the pattern:/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
.result.max_update_rate_ms
: (number/integer) Rate limiting for messages. Sets the minimum interval (in milliseconds) between consecutive WebSocket messages.result.params
: (table/queryapi_subscription_response) Object containing attributes to filter the resource on as per the Query Parameters specification. Can be empty.result.persist
: (boolean) Whether the API will retain or destroy the subscription after the final client disconnects.result.resource_path
: (string) HTTP resource path in the Query API to which this subscription relates. Possible values:{"/nodes","/devices","/sources","/flows","/senders","/receivers"}
.result.secure
: (boolean) Whether a secure WebSocket connection (wss://) is required.result.ws_href
: (string/uri) Address to connect to for the WebSocket subscription.
{ authorization = false; id = "7c903667-7113-4a8f-8865-1c63f9070a9e"; max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; ws_href = "ws://172.29.80.52:8870/ws/?uid=7c903667-7113-4a8f-8865-1c63f9070a9e"; }
Or
-
table/Error
(status 400) Returned when the POST request is incorrectly formatted, missing mandatory attributes or an attribute is invalid given the API's configuration
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Or
-
table/Error
(status 501) The query parameters specified are not currently supported by this implementation.
+
result.code
: (number/integer) HTTP error code. Minimum:400
. Maximum:599
.result.debug
: (nil | string) Debug information which may assist a programmer working with the API.result.error
: (string) Human readable message which is suitable for user interface display, and helpful to the user.
Usage:
query = require "lua-repl.lib.rest.nmos.query" api = query:create_api("http://query.nmos.acme.example.com") payload = { max_update_rate_ms = 100; params = { label = "host1" }; persist = false; resource_path = "/nodes"; secure = false; } result = api:subscriptions(payload)