AMWA IS-06 NMOS Network-control-API API documentation version v1.0
http://example.api.com/x-nmos/netctrl/{version}
- version: required(v1.0)
Overview
The Phase 2 network control API is exposed by NMOS network controller. It provides Phase 2 APIs to create and manage network flows, add senders and receivers for the flows, and fetch network details.
Base
Network Devices
List all network devices.
get /network-devices
List all network devices.
Query Parameters
- chassis_id: required(string)
- mgmt_ip: required(string)
- mtu: required(string)
- label: required(string)
HTTP status code 200
Body
Media type: application/json
Type: NetworkDevices
Example:
[
{
"id": "5482feef-49a2-4f3a-bf9c-d62b38a686c1",
"chassis_id": "8a-3a-99-4b-e0-1b",
"mgmt_ip": "10.10.16.16",
"mtu": 1500,
"interfaces": [
{
"port_id": "Ethernet 1/1",
"admin_status": "up",
"oper_status": "up",
"speed": "1Gbit/s",
"mtu": 1500
},
{
"port_id": "Ethernet 1/2",
"admin_status": "up",
"oper_status": "up",
"speed": "100Gbit/s"
},
{
"port_id": "Ethernet 1/3",
"admin_status": "up",
"oper_status": "up",
"speed": "100Gbit/s"
}
],
"label": "Network spine"
},
{
"id": "4b6452a8-6132-40e9-a8c3-aa0576e791f6",
"chassis_id": "42-b7-25-29-79-0e",
"mgmt_ip": "10.10.18.18",
"mtu": 1500,
"interfaces": [
{
"port_id": "Ethernet 1/1",
"admin_status": "up",
"oper_status": "up",
"speed": "1Gbit/s",
"mtu": 1800
},
{
"port_id": "Ethernet 1/2",
"admin_status": "up",
"oper_status": "up",
"speed": "10Gbit/s"
},
{
"port_id": "Ethernet 1/3",
"admin_status": "up",
"oper_status": "up",
"speed": "10Gbit/s"
}
],
"label": "Network leaf 1"
},
{
"id": "035a3ee6-1588-4ed3-a081-0a18539ad7d9",
"chassis_id": "2f-12-3e-be-13-07",
"mgmt_ip": "10.10.24.20",
"mtu": 1500,
"interfaces": [
{
"port_id": "Ethernet 1/1",
"admin_status": "up",
"oper_status": "up",
"speed": "1Gbit/s",
"mtu": 1800
},
{
"port_id": "Ethernet 1/2",
"admin_status": "up",
"oper_status": "up",
"speed": "10Gbit/s"
},
{
"port_id": "Ethernet 1/3",
"admin_status": "up",
"oper_status": "up",
"speed": "10Gbit/s"
}
],
"label": "Network leaf 2"
}
]
Get a single Network Device
get /network-devices/{id}
Get a single Network Device
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network device.
Example:
3f383f86-c977-498f-81bf-04c5cb8a0e0d
HTTP status code 200
Body
Media type: application/json
Type: NetworkDevice
Example:
{
"id": "11b8973e-91c9-462d-8dad-6b37e53b3b9f",
"chassis_id": "95-a6-37-bb-b2-61",
"mgmt_ip": "10.10.10.16",
"mtu": 1500,
"interfaces": [
{
"port_id": "Ethernet 1/1",
"admin_status": "up",
"oper_status": "up",
"speed": "1Gbit/s",
"mtu": 1500
},
{
"port_id": "Ethernet 1/2",
"admin_status": "up",
"oper_status": "up",
"speed": "100Gbit/s"
},
{
"port_id": "Ethernet 1/3",
"admin_status": "up",
"oper_status": "up",
"speed": "100Gbit/s"
}
],
"label": "Network spine"
}
HTTP status code 404
Returned when the network device with the guid does not exist.
Body
Media type: application/json
Type: ErrorSchema
Endpoints
Retrieve a collection of endpoints.
get /endpoints
Retrieve a collection of endpoints.
Query Parameters
- chassis_id: required(string)
- port_id: required(string)
- ip_address: required(string)
- max_bandwidth: required(string)
- role: required(string)
- label: required(string)
HTTP status code 200
Body
Media type: application/json
Type: Endpoints
Example:
[
{
"id": "fa08a879-488d-4e2b-8104-805e2288d8e9",
"chassis_id": "2d-af-a9-41-01-b4",
"port_id": "fe-97-94-bb-d2-ed",
"ip_address": "10.10.34.44",
"attached_network_device": {
"chassis_id": "2f-8c-af-79-c7-00",
"port_id": "Ethernet 1/3"
},
"max_bandwidth": "50Gbit/s",
"role": "both",
"label": "Video transmitter/receiver gateway endpoint."
},
{
"id": "d9c88a0a-c0c8-4ec8-ade5-fde9106e5040",
"chassis_id": null,
"port_id": "58-f9-46-71-39-c2",
"ip_address": "10.10.36.88",
"attached_network_device": {
"chassis_id": "2d-51-2b-85-89-7b",
"port_id": "Ethernet 1/2"
},
"max_bandwidth": "10Gbit/s",
"role": "receiver",
"label": "Video receiver gateway endpoint."
},
{
"id": "e90af02c-03ff-4a43-9cb9-4d86e0f3161a",
"chassis_id": "58-fb-07-76-56-6b",
"port_id": "a8-84-32-ef-1c-8c",
"ip_address": "10.10.48.16",
"attached_network_device": {
"chassis_id": "72-0c-a1-2c-87-0d",
"port_id": "Ethernet 2/2"
},
"max_bandwidth": "100Mbit/s",
"role": "receiver",
"label": "Audio receiver gateway endpoint."
}
]
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Get a single Endpoint
Register a new endpoint. The PUT is invoked to inform the network controller about the presence of an endpoint. The endpoint schema includes mandatory details of the network device the endpoint is attached to. The attached network device details can be fetched by the endpoint through LLDP (if the endpoint is LLDP capabale) or manual entry in the caller of this API (e.g., broadcast controller). The network may verify these details for security purposes. Verification may happen synchronously, as part of the request. Network controller must create a corresponding network link with this endpoint as the peer device. Peer port id of the new link may or maynot be assigned, i.e, implementation dependent. Subsequent PUT requests should throw error. Updates should be done using PATCH.
Update an existing endpoint attributes.
Delete an existing endpoint.
options /endpoints/{id}
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
get /endpoints/{id}
Get a single Endpoint
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network endpoint.
Example:
3607f868-c762-4220-8caf-e5a546395b29
HTTP status code 200
Body
Media type: application/json
Type: Endpoint
Example:
{
"id": "d9c88a0a-c0c8-4ec8-ade5-fde9106e5040",
"chassis_id":"1e-a1-79-16-0a-6b",
"port_id": "bf-f8-01-60-49-bc",
"ip_address": "10.10.34.24",
"attached_network_device": {
"chassis_id": "7a-c9-d7-f0-e2-03",
"port_id": "Ethernet 2/2"
},
"max_bandwidth": "10Gbit/s",
"role": "sender",
"label": "Video transmitter gateway endpoint."
}
HTTP status code 404
Returned when the requested Node ID does not exist.
Body
Media type: application/json
Type: ErrorSchema
put /endpoints/{id}
Register a new endpoint. The PUT is invoked to inform the network controller about the presence of an endpoint. The endpoint schema includes mandatory details of the network device the endpoint is attached to. The attached network device details can be fetched by the endpoint through LLDP (if the endpoint is LLDP capabale) or manual entry in the caller of this API (e.g., broadcast controller). The network may verify these details for security purposes. Verification may happen synchronously, as part of the request. Network controller must create a corresponding network link with this endpoint as the peer device. Peer port id of the new link may or maynot be assigned, i.e, implementation dependent. Subsequent PUT requests should throw error. Updates should be done using PATCH.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network endpoint.
Example:
3607f868-c762-4220-8caf-e5a546395b29
Body
Media type: application/json
Type: Endpoint
Example:
{
"id": "dc7c36a5-cd6d-44bb-a1ac-6e328c018de0",
"chassis_id":"91-0c-41-81-fb-40",
"port_id": "d6-f2-fa-ae-29-78",
"ip_address": "10.10.26.24",
"attached_network_device": {
"chassis_id": "d7-28-68-a3-89-4f",
"port_id": "Ethernet 1/2"
},
"max_bandwidth": "40Gbit/s",
"role": "receiver",
"label": "Video receiver gateway endpoint."
}
HTTP status code 201
Returns when the endpoint is registered with network controller successfully. Header should indicate the location of the created resource.
Headers
- Location: required(string)
Example:
/x-nmos/netctrl/v1.0/endpoints/d0729fa2-83ba-4e6b-8817-d48a4bf28f74/
Body
Media type: application/json
Type: Endpoint
Example:
{
"id": "d9c88a0a-c0c8-4ec8-ade5-fde9106e5040",
"chassis_id":"1e-a1-79-16-0a-6b",
"port_id": "bf-f8-01-60-49-bc",
"ip_address": "10.10.34.24",
"attached_network_device": {
"chassis_id": "7a-c9-d7-f0-e2-03",
"port_id": "Ethernet 2/2"
},
"max_bandwidth": "10Gbit/s",
"role": "sender",
"label": "Video transmitter gateway endpoint."
}
HTTP status code 400
Returned when the PUT request is incorrectly formatted or missing mandatory attributes. Also when an endpoint with this guid already exists. Errors should contain relevant msg.
Body
Media type: application/json
Type: ErrorSchema
patch /endpoints/{id}
Update an existing endpoint attributes.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network endpoint.
Example:
3607f868-c762-4220-8caf-e5a546395b29
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Patch request schema for updating an existing endpoint.",
"title": "Schema to modify an endpoint with new values.",
"required": [
],
"properties": {
"ip_address": {
"type": "string",
"description": "IP address on which the endpoint sends/receives flows. IP must be unique in the network.",
"anyOf": [
{
"format": "ipv4"
},
{
"format": "ipv6"
}
]
},
"attached_network_device": {
"type": "object",
"description": "Peer network device (switch) details. This can not be an endpoint.",
"required": [
"chassis_id",
"port_id"
],
"properties": {
"chassis_id": {
"type": "string",
"description": "MAC address for the peer network device.",
"pattern": "^([0-9a-f]{2}[-]){5}([0-9a-f]{2})$"
},
"port_id": {
"type": "string",
"description": "The ifAlias of the peer network device the end point is connected to."
}
}
},
"max_bandwidth": {
"type": "string",
"pattern": "^(?:0.|[1-9][0-9]*[.])?[0-9]+[kMG]bit\/s$",
"description": "Maximum bandwidth that the sender is allowed to send. Format as numbers followed by kbit/s, Mbit/s, Gbit/s."
},
"role": {
"description": "The role of the endpoint as a sender or receiver.",
"type": "string",
"enum": [
"sender",
"receiver",
"both"
]
},
"label": {
"description": "Freeform string label for the endpoint",
"type": "string"
}
}
}
Example:
{
"ip_address": "10.18.34.24",
"max_bandwidth": "10Gbit/s",
"role": "both"
}
HTTP status code 200
Returned when the endpoint is updated successfully. The updated endpoint is returned in the response.
Body
Media type: application/json
Type: Endpoint
Example:
{
"id": "d9c88a0a-c0c8-4ec8-ade5-fde9106e5040",
"chassis_id":"1e-a1-79-16-0a-6b",
"port_id": "bf-f8-01-60-49-bc",
"ip_address": "10.10.34.24",
"attached_network_device": {
"chassis_id": "7a-c9-d7-f0-e2-03",
"port_id": "Ethernet 2/2"
},
"max_bandwidth": "10Gbit/s",
"role": "sender",
"label": "Video transmitter gateway endpoint."
}
HTTP status code 400
Returned when the PATCH request is incorrectly formatted or can not be updated.
Body
Media type: application/json
Type: ErrorSchema
HTTP status code 404
Returned when the requested Endpoint with guid does not exist.
Body
Media type: application/json
Type: ErrorSchema
delete /endpoints/{id}
Delete an existing endpoint.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network endpoint.
Example:
3607f868-c762-4220-8caf-e5a546395b29
Network Links
Get all links in the network. Links are always bidirectional. Implementation of the API must ensure that query results is independent of how a bi-directional link is persisted.
get /network-links
Get all links in the network. Links are always bidirectional. Implementation of the API must ensure that query results is independent of how a bi-directional link is persisted.
Query Parameters
- peers.device_id: required(string)
- peers.port_id: required(string)
- speed: required(string)
HTTP status code 200
Body
Media type: application/json
Type: NetworkLinks
Example:
[
{
"peers": [
{
"device_id": "f3841396-1cbf-4a8a-915c-dd1034121532",
"port_id": "Ethernet 1/2"
},
{
"device_id": "2c516096-4fa6-4b93-8b84-248ad79dff3a",
"port_id": "Ethernet 2/1"
}
],
"speed": "100Gbit/s"
},
{
"peers": [
{
"device_id": "aa4df211-284e-4417-9827-b1ceda12a4ff",
"port_id": "Ethernet 1/3"
},
{
"device_id": "fc3cec11-fcb1-4933-97a3-d5c3dde9d1cc",
"port_id": "Ethernet 2/1"
}
],
"speed": "100Gbit/s"
},
{
"peers": [
{
"device_id": "cf333591-82ac-456a-898b-f56ff83d1d22",
"port_id": "Ethernet 2/2"
},
{
"device_id": "e2d3b1e1-cf03-4399-9247-6c238dc16327",
"port_id": "Ethernet 1/1"
}
],
"speed": "1Gbit/s"
},
{
"peers": [
{
"device_id": "71706c18-49f2-481d-914a-d711d773dacb",
"port_id": "Ethernet 2/2"
},
{
"device_id": "ce2aff8d-fea1-42e1-bce0-7878024972c9",
"port_id": null
}
],
"speed": "1Gbit/s"
}
]
Network flow
Retrieve a collection of network flows.
get /network-flows
Retrieve a collection of network flows.
Query Parameters
- multicast_address: required(string)
- sender_endpoint_id: required(string)
- bandwidth: required(string)
- profile: required(string)
- forward_flow: required(string)
- dscp: required(string)
- label: required(string)
HTTP status code 200
Body
Media type: application/json
Type: NetworkFlows
Example:
[
{
"id": "af789265-3786-4e68-ac55-c473f32e6b61",
"multicast_address": "226.8.1.1",
"sender_endpoint_id": "e576574b-3b29-4f44-bb0e-784008ee26fb",
"receiver_endpoint_ids": [
"92ecbc58-2f65-4f98-a426-6c479e0698cd",
"600be553-0384-4405-97f9-7f4abb29051d"
],
"bandwidth": "4Gbit/s",
"profile": "SMPTE-2110-21-wide",
"forward_flow": true,
"dscp": "AF12",
"label": "Broadcast Video"
},
{
"id": "d2439cef-59bc-456d-8791-fc37b8e82691",
"multicast_address": "226.1.1.16",
"sender_endpoint_id": "20aece97-c2b8-4a6c-a451-34ad86aae367",
"receiver_endpoint_ids": [
],
"bandwidth": "2Gbit/s",
"profile": "SMPTE-2110-21-narrow",
"forward_flow": false,
"dscp": "AF12",
"label": "Staged broadcast video"
},
{
"id": "c519def6-2e4c-4c7f-91b1-4cdbcbe60e8c",
"multicast_address": "226.8.1.2",
"sender_endpoint_id": "e576574b-3b29-4f44-bb0e-784008ee26fb",
"receiver_endpoint_ids": [
"92ecbc58-2f65-4f98-a426-6c479e0698cd",
"600be553-0384-4405-97f9-7f4abb29051d"
],
"bandwidth": "400Mbit/s",
"profile": "constant-rate",
"forward_flow": true,
"dscp": "AF12",
"label": "Audio stream accompanying video stream"
}
]
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Retrieve a single network-flow with the specified guid.
Create a network flow with the specific guid. No subsequent PUT request should be made for this flow and should return error. Use PATCH to update existing network flow.
Update an existing network flow with the specific guid. A network flow is equivalent to and uniquely identified by the sender id and the multicast address, or the <S,G> pair. So, neither the sender id or the multicast address can be updated of an existing flow. A new network flow should be created for a different pair of <S,G>. Moreover, for simplicity, receiver endpoint ids can only be updated using /receivers post or delete request.
Delete the network-flow with the specified guid.
options /network-flows/{id}
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
get /network-flows/{id}
Retrieve a single network-flow with the specified guid.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
HTTP status code 200
Body
Media type: application/json
Type: NetworkFlow
Example:
{
"id": "c386ff15-3b3f-4813-ac86-1c7b8cf753b6",
"multicast_address": "226.1.1.1",
"sender_endpoint_id": "a9ab3d49-3b8f-49e1-bbe4-b46228a9e167",
"receiver_endpoint_ids": [
"231ea016-1553-4488-8c2b-26bee7b9a1aa",
"7e54a194-45e7-44e6-8795-b3a21bfff253"
],
"bandwidth": "4Gbit/s",
"profile": "SMPTE-2110-21-wide",
"forward_flow": true,
"dscp": "AF12",
"label": "Sample Video network flow"
}
HTTP status code 404
Returned when the network-flow with guid does not exist.
Body
Media type: application/json
Type: ErrorSchema
put /network-flows/{id}
Create a network flow with the specific guid. No subsequent PUT request should be made for this flow and should return error. Use PATCH to update existing network flow.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
Body
Media type: application/json
Type: NetworkFlow
Example:
{
"id": "1650fbcc-d8a0-4bd2-8e61-c7abb38d78d2",
"multicast_address": "227.1.1.1",
"sender_endpoint_id": "76beb838-3ad7-4011-bd68-5c203a4446ab",
"receiver_endpoint_ids": [
"3f80b3fa-74e3-4dcc-a1c0-5dbf5a199e20"
],
"bandwidth": "4Gbit/s",
"profile": "constant-rate",
"forward_flow": false,
"dscp": "AF11",
"label": "New video network-flow"
}
HTTP status code 201
Returned when the network flow is created successfully. Response body is same as 200 on GET. Location header should indicate the location of the network flow.
Headers
- Location: required(string)
Example:
/x-nmos/netctrl/v1.0/network-flows/6fb3c057-a363-40cc-8f3d-cbaee5e35248/
Body
Media type: application/json
Type: NetworkFlow
Example:
{
"id": "c386ff15-3b3f-4813-ac86-1c7b8cf753b6",
"multicast_address": "226.1.1.1",
"sender_endpoint_id": "a9ab3d49-3b8f-49e1-bbe4-b46228a9e167",
"receiver_endpoint_ids": [
"231ea016-1553-4488-8c2b-26bee7b9a1aa",
"7e54a194-45e7-44e6-8795-b3a21bfff253"
],
"bandwidth": "4Gbit/s",
"profile": "SMPTE-2110-21-wide",
"forward_flow": true,
"dscp": "AF12",
"label": "Sample Video network flow"
}
HTTP status code 400
Returned when the PUT request is incorrectly formatted or has missing values. Also returned when a network-flow exists with the given guid. Explicit message should be added to indicate the cause of the error.
Body
Media type: application/json
Type: ErrorSchema
patch /network-flows/{id}
Update an existing network flow with the specific guid. A network flow is equivalent to and uniquely identified by the sender id and the multicast address, or the <S,G> pair. So, neither the sender id or the multicast address can be updated of an existing flow. A new network flow should be created for a different pair of <S,G>. Moreover, for simplicity, receiver endpoint ids can only be updated using /receivers post or delete request.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Describes a patch of a network flow.",
"title": "Network flow with attributes that can be patched",
"required": [
],
"properties": {
"bandwidth": {
"type": "string",
"description": "Average bandwidth requirement for the flow. Format as number followed by kbit/s, Mbit/s, Gbit/s.",
"pattern": "^(?:0.|[1-9][0-9]*[.])?[0-9]+[kMG]bit\/s$"
},
"profile": {
"description": "The transmission profile of the flow.",
"type": "string",
"enum": [
"constant-rate",
"SMPTE-2110-21-narrow",
"SMPTE-2110-21-wide",
"unknown"
]
},
"forward_flow": {
"description": "Flag for forwarding the flow. If false, the network should not set up the flow. Only when this flag is changed to true should the flow be sent to all receivers.",
"type": "boolean",
"default": true
},
"dscp": {
"type": "string",
"description": "DSCP based QoS metrics number, default is CS0, best effort.",
"enum": [
"CS0",
"CS1",
"CS2",
"CS3",
"CS4",
"CS5",
"CS6",
"CS7",
"AF11",
"AF12",
"AF13",
"AF21",
"AF22",
"AF23",
"AF31",
"AF32",
"AF33",
"AF41",
"AF42",
"AF43",
"EF"
]
},
"label": {
"description": "Freeform string label for the network-flow",
"type": "string"
}
}
}
Example:
{
"bandwidth": "4Gbit/s",
"profile": "constant-rate",
"forward_flow": true,
"dscp": "AF11",
"label": "Updated video network-flow"
}
HTTP status code 200
Returned when the network flow is updated successfully. The updated network flow is returned in the response.
Body
Media type: application/json
Type: NetworkFlow
Example:
{
"id": "c386ff15-3b3f-4813-ac86-1c7b8cf753b6",
"multicast_address": "226.1.1.1",
"sender_endpoint_id": "a9ab3d49-3b8f-49e1-bbe4-b46228a9e167",
"receiver_endpoint_ids": [
"231ea016-1553-4488-8c2b-26bee7b9a1aa",
"7e54a194-45e7-44e6-8795-b3a21bfff253"
],
"bandwidth": "4Gbit/s",
"profile": "SMPTE-2110-21-wide",
"forward_flow": true,
"dscp": "AF12",
"label": "Sample Video network flow"
}
HTTP status code 400
Returned when the PATCH request is incorrectly formatted or has incorrect values.
Body
Media type: application/json
Type: ErrorSchema
HTTP status code 404
Returned when the network-flow with guid does not exist.
Body
Media type: application/json
Type: ErrorSchema
delete /network-flows/{id}
Delete the network-flow with the specified guid.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Add one or more receivers to this network flow. Receivers included in the body should be appended to the existing receivers, if any. If the forward-flow is set for this network flow, both bandwidth resrvation and flow switching must occur for all new receivers. If the fowrad-flow is not set, only resource reservation should take place. Failure to satisfy for any one receiver should fail for all and fail the complete request. Proper error message should be provided in this scenario. No task should be completed partially, that is, server should employ all-or-nothing strategy.
options /network-flows/{id}/receivers
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
post /network-flows/{id}/receivers
Add one or more receivers to this network flow. Receivers included in the body should be appended to the existing receivers, if any. If the forward-flow is set for this network flow, both bandwidth resrvation and flow switching must occur for all new receivers. If the fowrad-flow is not set, only resource reservation should take place. Failure to satisfy for any one receiver should fail for all and fail the complete request. Proper error message should be provided in this scenario. No task should be completed partially, that is, server should employ all-or-nothing strategy.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Post request schema for adding new receivers to an existing network flow.",
"title": "One or many receivers for a multicast network-flow.",
"required": [
"receiver_endpoint_ids"
],
"properties": {
"receiver_endpoint_ids": {
"type": "array",
"description": "List of receiver endpoint IDs.",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
},
"minItems": 1,
"uniqueItems": true
}
}
}
Example:
{
"receiver_endpoint_ids": [
"ff458774-0fdc-4948-b0ee-2d6043c2c689",
"4d3cfb9f-5a1b-4a92-a4f5-6f3812795629",
"79b9e6ec-8d14-4c87-b1f1-45e763f4c077",
"d60bbf82-6b5d-4a56-ab8e-eeae3e40e534",
"e0cfe384-0a3e-4256-9a70-4251c423ad00"
]
}
HTTP status code 204
Returned when the receivers are successfully added. No response body.
HTTP status code 400
Returned when the POST request is incorrectly formatted, missing values, or an error occurred while adding the receivers. If the request failed due to partial error, appropriate message should be added in error response.
Body
Media type: application/json
Type: ErrorSchema
HTTP status code 404
Returned when the network flow with guid does not exist.
Body
Media type: application/json
Type: ErrorSchema
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Delete receiver of this network flow with given id.
options /network-flows/{id}/receivers/{receiverId}
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
- receiverId: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the receiver endpoint.
Example:
77b52221-c789-45fd-90b3-d9d8211de9d3
delete /network-flows/{id}/receivers/{receiverId}
Delete receiver of this network flow with given id.
URI Parameters
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the network-flow.
Example:
cfd02532-1c83-45a5-ae38-1cb7614346db
- receiverId: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$)
The globally unique identifier for the receiver endpoint.
Example:
77b52221-c789-45fd-90b3-d9d8211de9d3