Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Development/cmake/NmosCppLibraries.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ set(NMOS_IS05_SCHEMAS_HEADERS
nmos/is05_schemas/is05_schemas.h
)

set(NMOS_IS05_V1_2_TAG v1.2-dev)
set(NMOS_IS05_V1_2_TAG v1.2.x)
set(NMOS_IS05_V1_1_TAG v1.1.x)
set(NMOS_IS05_V1_0_TAG v1.0.x)

Expand All @@ -428,6 +428,7 @@ set(NMOS_IS05_V1_2_SCHEMAS_JSON
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/constraints-schema-rtp.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/constraints-schema-websocket.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/error.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/mxl_uuid.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/receiver_transport_params.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/receiver_transport_params_dash.json
third_party/is-05/${NMOS_IS05_V1_2_TAG}/APIs/schemas/receiver_transport_params_ext.json
Expand Down
4 changes: 2 additions & 2 deletions Development/nmos/connection_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ namespace nmos
{
// These are the constraints that support "auto" in /staged
// BCP-007-03: MXL Receivers MUST NOT use "auto" for mxl_flow_id (domain only).
// See https://specs.amwa.tv/bcp-007-03/branches/publish-auto-null/docs/NMOS-With-MXL.html
// See https://specs.amwa.tv/bcp-007-03/branches/v1.0.x/docs/NMOS-With-MXL.html
static const std::map<nmos::type, std::set<utility::string_t>> auto_constraints
{
{
Expand All @@ -286,7 +286,7 @@ namespace nmos
static const std::map<nmos::type, std::set<utility::string_t>>& mxl_null_constraints()
{
// These are the constraints that support null (unconfigured) in /staged
// See https://specs.amwa.tv/bcp-007-03/branches/publish-auto-null/docs/NMOS-With-MXL.html
// See https://specs.amwa.tv/bcp-007-03/branches/v1.0.x/docs/NMOS-With-MXL.html
// and sender_transport_params_mxl.json / receiver_transport_params_mxl.json
static const std::map<nmos::type, std::set<utility::string_t>> null_constraints
{
Expand Down
3 changes: 2 additions & 1 deletion Development/nmos/is05_schemas/is05_schemas.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace nmos
{
namespace is05_schemas
{
namespace v1_2_dev
namespace v1_2_x
{
extern const char* activation_schema;
extern const char* sender_stage_schema;
Expand All @@ -18,6 +18,7 @@ namespace nmos
extern const char* sender_transport_params_mqtt;
extern const char* sender_transport_params_mxl;
extern const char* sender_transport_params_ext;
extern const char* mxl_uuid;
extern const char* receiver_stage_schema;
extern const char* receiver_transport_file;
extern const char* receiver_transport_params;
Expand Down
7 changes: 4 additions & 3 deletions Development/nmos/json_schema.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ namespace nmos
return{ _XPLATSTR("https://github.com/AMWA-TV/is-05/raw/") + tag + _XPLATSTR("/APIs/schemas/") + ref };
}

// See https://github.com/AMWA-TV/is-05/blob/v1.2-dev/APIs/schemas/
// See https://github.com/AMWA-TV/is-05/blob/v1.2.x/APIs/schemas/
namespace v1_2
{
using namespace nmos::is05_schemas::v1_2_dev;
const utility::string_t tag(_XPLATSTR("v1.2-dev"));
using namespace nmos::is05_schemas::v1_2_x;
const utility::string_t tag(_XPLATSTR("v1.2.x"));

const web::uri connectionapi_sender_staged_patch_request_uri = make_schema_uri(tag, _XPLATSTR("sender-stage-schema.json"));
const web::uri connectionapi_receiver_staged_patch_request_uri = make_schema_uri(tag, _XPLATSTR("receiver-stage-schema.json"));
Expand Down Expand Up @@ -345,6 +345,7 @@ namespace nmos
{ make_schema_uri(v1_2::tag, _XPLATSTR("sender_transport_params_mqtt.json")), make_schema(v1_2::sender_transport_params_mqtt) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("sender_transport_params_mxl.json")), make_schema(v1_2::sender_transport_params_mxl) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("sender_transport_params_ext.json")), make_schema(v1_2::sender_transport_params_ext) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("mxl_uuid.json")), make_schema(v1_2::mxl_uuid) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("receiver_transport_params.json")), make_schema(v1_2::receiver_transport_params) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("receiver_transport_params_rtp.json")), make_schema(v1_2::receiver_transport_params_rtp) },
{ make_schema_uri(v1_2::tag, _XPLATSTR("receiver_transport_params_dash.json")), make_schema(v1_2::receiver_transport_params_dash) },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Activation resource",
"description": "Parameters concerned with activation of the transport parameters",
"type": "object",
Expand All @@ -23,7 +22,7 @@
}]
},
"requested_time": {
"description": "String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating time (absolute or relative) for activation. Should be null or not present if 'mode' is null.",
"description": "String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating time (absolute or relative) for activation. Should be null or not present if 'mode' is null or activate_immediate.",
"anyOf": [{
"type": "string",
"pattern": "^[0-9]+:[0-9]+$"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
"$ref": "constraint-schema.json#/definitions/constraint"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "MXL flow or domain identifier as a lowercase canonical textual UUID. Restricted to RFC 9562 versions 1-15 (version nibble 1-f) and the standard RFC 4122/9562 variants.",
"title": "MXL UUID",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-9a-f][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes MQTT Receiver transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. MQTT Receivers must support all parameters in this schema.",
"title": "MQTT Receiver Transport Parameters",
"type": "object",
"title": "Receiver Input",
"properties": {
"source_host": {
"type": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,32 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Describes MXL Receiver transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint.",
"description": "Describes MXL transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. Receivers support at least the `mxl_domain_id` and `mxl_flow_id` parameters.",
"title": "MXL Receiver Transport Parameters",
"type": "object",
"properties": {
"mxl_domain_id": {
"type": [
"string",
"null"
],
"description": "Specifies the MXL Domain ID where the MXL Flow will be located. The Receiver lists allowed Domain IDs in the constraints endpoint. Where the Domain is not yet determined, implementations use null. MXL Receivers accept null for an unconfigured Receiver. MXL Receivers support the literal auto for the single-domain case and, where appropriate, in multi-domain deployments. In replicated topologies, the selected Domain may differ in identity from an origin Domain (for example permissions, security context, or administrative boundary), provided it yields a valid operational configuration. Where auto cannot be resolved to a valid value for /active in the current operating context, the Receiver may reject the request or activation. The constraints endpoint does not list auto as an available option.",
"anyOf": [{
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-9a-f][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^auto$"
},
{
"type": "null"
"$ref": "mxl_uuid.json"
}
]
},
"mxl_flow_id": {
"type": [
"string",
"null"
],
"description": "Specifies the MXL Flow ID for the MXL read operation. The Receiver lists allowed Flow IDs in the constraints endpoint. Where the flow is not yet determined, implementations use null. MXL Receivers accept null for an unconfigured Receiver as the MXL Flow ID may be unknown until the Receiver has been suitably patched. The literal auto is not used for this parameter.",
"anyOf": [{
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-9a-f][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
},
"anyOf": [
{
"type": "null"
},
{
"$ref": "mxl_uuid.json"
}
]
}
Expand All @@ -42,4 +37,4 @@
}
},
"additionalProperties": false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes RTP Receiver transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. Receivers must support at least the `source_ip`, `interface_ip`, `rtp_enabled` and `destination_port` parameters, and must support the `multicast_ip` parameter if they are capable of multicast operation. Receivers supporting FEC and/or RTCP must support parameters prefixed with `fec` and `rtcp` respectively.",
"title": "RTP Receiver Transport Parameters",
"type": "object",
"title": "Receiver Input",
"properties": {
"source_ip": {
"type": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes WebSocket Receiver transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. WebSocket Receivers must support all parameters in this schema.",
"title": "WebSocket Receiver Transport Parameters",
"type": "object",
"title": "Receiver Input",
"properties": {
"connection_uri": {
"type": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes MQTT Sender transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. MQTT Senders must support all properties in this schema.",
"title": "MQTT Sender Transport Parameters",
"type": "object",
"title": "Sender Output",
"properties": {
"destination_host": {
"type": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,36 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Describes MXL Sender transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint.",
"description": "Describes MXL transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. Senders support at least the `mxl_domain_id` and `mxl_flow_id` parameters.",
"title": "MXL Sender Transport Parameters",
"type": "object",
"properties": {
"mxl_domain_id": {
"type": [
"string",
"null"
],
"description": "Specifies the MXL Domain ID where the MXL Flow will be located. The Sender lists allowed Domain IDs in the constraints endpoint. Where the Domain is not yet determined, implementations use null. MXL Senders accept null where the MXL Domain is unknown a priori in a multi-domain system. MXL Senders support `auto` where the Sender can resolve the Domain without a Controller-supplied Domain ID. Where `auto` cannot be resolved to a valid value for /active in the current operating context, the Sender may reject the request or activation. The constraints endpoint does not list `auto` as an available option.",
"anyOf": [{
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-9a-f][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^auto$"
},
{
"type": "null"
"$ref": "mxl_uuid.json"
}
]
},
"mxl_flow_id": {
"type": [
"string",
"null"
],
"description": "Specifies the MXL Flow ID for the MXL write operation. The Sender lists allowed Flow IDs in the constraints endpoint. Where the flow is not yet determined, implementations use null. MXL Senders accept null including where the MXL Flow is not yet configured. MXL Senders support `auto` where the Sender resolves the MXL Flow ID (for example when only one MXL Flow applies). Where `auto` cannot be resolved to a valid value for /active in the current operating context, the Sender may reject the request or activation. The constraints endpoint does not list auto as an available option.",
"anyOf": [{
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-9a-f][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^auto$"
},
{
"type": "null"
"$ref": "mxl_uuid.json"
}
]
}
Expand All @@ -45,4 +41,4 @@
}
},
"additionalProperties": false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes RTP Sender transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. As a minimum all senders must support `source_ip`, `destination_ip`, `source_port`, `rtp_enabled` and `destination_port`. Senders supporting FEC and/or RTCP must support parameters prefixed with `fec` and `rtcp` respectively.",
"title": "RTP Sender Transport Parameters",
"type": "object",
"title": "Sender Output",
"properties": {
"source_ip": {
"type": "string",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"description": "Describes WebSocket Sender transport parameters. The constraints in this schema are minimum constraints, but may be further constrained at the constraints endpoint. WebSocket Senders must support all parameters in this schema.",
"title": "WebSocket Sender Transport Parameters",
"type": "object",
"title": "Sender Output",
"properties": {
"connection_uri": {
"type": [
Expand Down
Loading