Archiverflows
Archiverflow represents the configuration between ControlHub and the archiver service, allowing ControlHub to stream archiver Events.
Archiverflow Object
An Archiverflow object will contain the following:
{
"id": "221529f1-965a-4197-b38a-ebcbe16103b0",
"name": "Archiverflow 01 (Example)",
"configurationJson": "{...}"
}
The configurationJson
property contains all of the configuration, and is the essential part.
ConfigurationJson
Example:
{
"archiverflows": [
{
"name": "default",
"type": "ArchiverFlow",
"outputUrls": [
{
"streamProtocol": "HLS",
"cdnPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/.m3u8?t={starttime}-{endtime}",
"cdnSecondaryUrl": "",
"privateUrl": "",
"originPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/.m3u8?t={starttime}-{endtime}",
"originSecondaryUrl": ""
},
{
"streamProtocol": "DASH",
"cdnPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/.mpd?t={starttime}-{endtime}",
"cdnSecondaryUrl": "",
"privateUrl": "",
"originPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/.mpd?t={starttime}-{endtime}",
"originSecondaryUrl": ""
},
{
"streamProtocol": "HSS",
"cdnPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/Manifest?t={starttime}-{endtime}",
"cdnSecondaryUrl": "",
"privateUrl": "",
"originPrimaryUrl": "https://origin.vualto.example.vualto.com/catchup/{capture_id}/{profile_id}/archive.ism/Manifest?t={starttime}-{endtime}",
"originSecondaryUrl": ""
}
]
}
]
}
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "archiverflow Json Schema",
"description": "archiverflow Json",
"type": "object",
"properties": {
"archiverflows": {
"type": "array",
"items": {
"title": "archiverflow",
"type": "object",
"properties": {
"outputUrls": {
"type": "array",
"items": {
"title": "stream",
"type": "object",
"anyOf": [
{ "$ref": "#/definitions/hlsArchiver" },
{ "$ref": "#/definitions/hlseArchiver" },
{ "$ref": "#/definitions/hssArchiver" },
{ "$ref": "#/definitions/dashArchiver" },
{ "$ref": "#/definitions/hdsArchiver" }
]
}
}
},
"required": [ "outputUrls" ]
}
}
},
"definitions": {
"hlsArchiver": {
"properties": {
"streamProtocol": { "enum": [ "HLS" ] },
"cdnPrimaryUrl": {
"type": "string"
},
"cdnSecondaryUrl": {
"type": "string"
},
"privateUrl": {
"type": "string"
},
"originPrimaryUrl": {
"type": "string"
},
"originSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "cdnPrimaryUrl", "originPrimaryUrl" ],
"additionalProperties": false
},
"hlseArchiver": {
"properties": {
"streamProtocol": { "enum": [ "HLSe" ] },
"cdnPrimaryUrl": {
"type": "string"
},
"cdnSecondaryUrl": {
"type": "string"
},
"privateUrl": {
"type": "string"
},
"originPrimaryUrl": {
"type": "string"
},
"originSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "cdnPrimaryUrl", "originPrimaryUrl" ],
"additionalProperties": false
},
"hssArchiver": {
"properties": {
"streamProtocol": { "enum": [ "HSS" ] },
"cdnPrimaryUrl": {
"type": "string"
},
"cdnSecondaryUrl": {
"type": "string"
},
"privateUrl": {
"type": "string"
},
"originPrimaryUrl": {
"type": "string"
},
"originSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "cdnPrimaryUrl", "originPrimaryUrl" ],
"additionalProperties": false
},
"dashArchiver": {
"properties": {
"streamProtocol": { "enum": [ "DASH" ] },
"cdnPrimaryUrl": {
"type": "string"
},
"cdnSecondaryUrl": {
"type": "string"
},
"privateUrl": {
"type": "string"
},
"originPrimaryUrl": {
"type": "string"
},
"originSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "cdnPrimaryUrl", "originPrimaryUrl" ],
"additionalProperties": false
},
"hdsArchiver": {
"properties": {
"streamProtocol": { "enum": [ "HDS" ] },
"cdnPrimaryUrl": {
"type": "string"
},
"cdnSecondaryUrl": {
"type": "string"
},
"privateUrl": {
"type": "string"
},
"originPrimaryUrl": {
"type": "string"
},
"originSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "cdnPrimaryUrl", "originPrimaryUrl" ],
"additionalProperties": false
}
}
}
Supported Actions
POST /archiverflow/
Add an Archiverflow.
{
"id": "90b3e9c7-b304-479a-92c1-09ff4af001d5",
"name": "archiverflow-name",
"configurationJson": "{...}"
}
Response: 200 OK
or 400 Bad Request
if the JSON schema is invalid.
PUT /archiverflow/{id}
Update an Archiverflow by Id.
This request is the same as the above, but with the Id in the route instead of the body.
Response: 200 OK
or 400 Bad Request
if the JSON schema is invalid.
GET /archiverflow/
Get all Archiverflows.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
noCache | bool | No | Whether or not to skip cache. Defaults to False. |
Response: 200 OK
and JSON array containing multiple Archiverflow object.
GET /archiverflow/{id}
Get Archiverflow by Id.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
noCache | bool | No | Whether or not to skip cache. Defaults to False. |
Response:
200 OK
and JSON containing Archiverflow object.
or
204 No Content
if no Archiverflow exists with the given Id.
DELETE /archiverflow/{id}
Delete an Archiverflow by Id.
Response: 200 OK