Basic Requirements

All requests have the prerequisite api/

For example the "Get channel/{id}" REST call would be GET api/channel/{guid}

All Id's are Guid's

Channels

GET channel/{id}

Example Request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example Response:

Headers:

X-Transaction-ID: {string}

Example JSON Response:

Will contain the channel JSON but will also contain the configuration JSON for a channel, which is a template JSON file that can be POSTed back. Recommended to view the JSON in a JSON viewer.

{    
    "encoders": [
        {
            "name": "FS CRW01 Channel01",
            "raiseOnError": true,
            "type": "MediaExcelHero",
            "encoderSpecific": {
                "heroApiUrlA": "http://10.196.50.49/hms/soapproxy.php",
                "heroApiUrlB": "http://10.196.50.49/hms/soapproxy.php",
                "heroChannelId": 830,
                "heroDeviceId": 5,
                "supportsContinousTimeStamp": true
            },
            "streamingServer": {
                "type": "USP",
                "streamingServerSpecific": {
                    "primaryPublishingPoint": { 
                     "publishingpointUrl": "http://10.196.50.53:8080/live/fs/crw01
                     /ch01/channel1/live.isml",
                        "uspAPI": "http://80.169.3.216:9292",
                        "uspAPIKey": "dff32df7-59a3-49e1-ae02-976e342beb55",
                        "dvrWindowLength": 30,
                        "filePath": "/home/user/live/fs/crw01/ch01/channel1/"

                    },
                    "secondaryPublishingPoint": {
                        "publishingpointUrl": "",
                        "uspAPI": "",
                        "uspAPIKey": "",
                        "dvrWindowLength": 30,
                        "filePath": ""
                    }
                }
            },
            "outputUrls": [
                {
                    "streamProtocol": "HLS",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.m3u8",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.m3u8",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/live.isml/live.m3u8",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/vod.ism/vod.m3u8",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "DASH",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.mpd",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.mpd",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/live.isml/live.mpd",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/vod.ism/vod.mpd",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "HSS",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/Manifest",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/Manifest",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/live.isml/Manifest",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/vod.ism/Manifest",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "DASH",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.f4m",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.f4m",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/live.isml/live.f4m",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
                    /ch01/channel1/vod.ism/vod.f4m",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                }
            ]
        },
        {
            "name": "FS CHF01 Channel01",
            "type": "MediaExcelHero",
            "raiseOnError": false,
            "encoderSpecific": {
                "heroApiUrlA": "http://80.169.3.218:80/hms/soapproxy.php",
                "heroApiUrlB": "http://80.169.3.219:80/hms/soapproxy.php",
                "heroChannelId": 829,
                "heroDeviceId": 5,
                "supportsContinousTimeStamp": true
                 },
            "streamingServer": {
                "type": "USP",
                "streamingServerSpecific": {
                    "primaryPublishingPoint": {
                       "publishingpointUrl": "http://10.196.50.54:8080/live/fs/chf01
                       /ch01/channel1/live.isml",
                        "uspAPI": "http://80.169.3.217:9292",
                        "uspAPIKey": "dff32df7-59a3-49e1-ae02-976e342beb55",
                        "dvrWindowLength": 30,
                        "filePath": "/home/user/live/fs/chf01/ch01/channel1/"

                    },
                    "secondaryPublishingPoint": {
                        "publishingpointUrl": "",
                        "uspAPI": "",
                        "uspAPIKey": "",
                        "dvrWindowLength": 30,
                        "filePath": ""
                    }
                }
            },
            "outputUrls": [
               {
                    "streamProtocol": "HLS",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.m3u8",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.m3u8",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/live.isml/live.m3u8",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/vod.ism/vod.m3u8",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "DASH",                     
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.mpd",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.mpd",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/live.isml/live.mpd",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/vod.ism/vod.mpd",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "HSS",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/Manifest",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/Manifest",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/live.isml/Manifest",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/vod.ism/Manifest",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                },
                {
                    "streamProtocol": "HDS",
                    "liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.f4m",
                    "vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.f4m",
                    "liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/live.isml/live.f4m",
                    "vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
                    /ch01/channel1/vod.ism/vod.f4m",
                    "liveOriginSecondaryUrl": "",
                    "vodOriginSecondaryUrl": ""
                }
            ]
        }
    ]
} 

GET channel

NOTE: Returns all data for all channels.

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON Response:

Very similar to "GET channel/{id}" but as an array.

DELETE channel/{id}

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

POST channel

Add new Channel

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Response Body Params:

ID: {string} - Optional Parameter. Same ID will cause and Update

Name: {string} - Name

ConfigurationJson: {string} - The Template channel JSON. Has to be the same JSON 
                              structure as the GET                             

Example Schema for JSON:

{
  "encoders": {
            "type": "array",
            "items": {
                "title": "encoder",
                "type": "object",
                "properties": {
                    "name": { "type": "string" },
                    "raiseOnError": { "type": "boolean"},
                    "type": {
                        "type": "string",
                        "enum": [
                            "FFMPEGWindows",
                            "FFMPEGLinux",
                            "ExpressionEncoder",
                            "MediaExcelHero",
                            "FMLE"
                        ]
                    },
                    "encoderSpecific": {
                        "type": "object",
                        "oneOf": [
                            { "$ref": "#/definitions/heroEncoders" }
                        ]
                    },
                    "streamingServer": {
                        "title": "streaming Server",
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "USP"
                                ]
                            },
                            "streamingServerSpecific": {
                                "type": "object",
                                "oneOf": [
                                    { "$ref": "#/definitions/usp" },
                                    { "$ref": "#/definitions/wowza" }
                                ]
                            }
                        }
                    },
                    "outputUrls": {
                        "type": "array",
                        "items": { 
                            "title": "stream",
                            "type": "object",
                            "anyOf": [
                                { "$ref": "#/definitions/hls" },
                                { "$ref": "#/definitions/hss" },
                                { "$ref": "#/definitions/dash" },
                                { "$ref": "#/definitions/hds" }
                            ]
                        }
                    }
                },
                "required": [ "name", "raiseOnError", "encoderSpecific", 
                "streamingServer", "outputUrls"}
        }
    },
    "definitions": {
        "heroEncoders": {
            "properties": {
                "heroApiUrlA": { "type": "string" },
                "heroApiUrlB": { "type": "string" },
                "heroChannelId": { "type": "integer" },
                "heroDeviceId": { "type": "integer" },
                "supportsContinousTimeStamp": { "type": "boolean" }
            },
            "required": [ "heroApiUrlA", "heroApiUrlB", "heroChannelId", 
            "heroDeviceId" ], "additionalProperties": false },
            "usp": {
            "properties": {
                "primaryPublishingPoint": {
                    "type": "object",
                    "properties": {
                        "publishingpointUrl": { "type": "string" }, 
                     "uspAPI": { "type": "string" },
                        "uspAPIKey": { "type": "string" },
                        "dvrWindowLength": { "type": "integer" },
                        "filePath": { "type": "string" }

                    },
                    "required": [ "publishingpointUrl", "uspAPI", "uspAPIKey", 
                    "dvrWindowLength", "filePath" ]
                },
                "secondaryPublishingPoint": {
                    "type": "object",
                    "properties": {
                        "publishingpointUrl": { "type": "string" },
                        "uspAPI": { "type": "string" },
                        "uspAPIKey": { "type": "string" },
                        "dvrWindowLength": { "type": "integer" },
                        "filePath": { "type": "string" }
                    },
                    "required": [ "publishingpointUrl", "uspAPI", "uspAPIKey", 
                    "dvrWindowLength", "filePath" ]
                }
            },
            "required": [ "primaryPublishingPoint", "secondaryPublishingPoint" ],
            "additionalProperties": false
        },
        "wowza": {
            "properties": {
                "not set": { "type": "string" }
                },
                "additionalProperties": false
        },
        "hls": {
            "properties": {
                "streamProtocol": { "enum": [ "HLS" ] }, 
                "liveCdnUrl": {
                    "type": "string"
                },
                "vodCdnUrl": {
                    "type": "string"
                },
                "liveOriginPrimaryUrl": {
                    "type": "string"
                },
                "vodOriginPrimaryUrl": {
                    "type": "string"
                },
                "liveOriginSecondaryUrl": {
                    "type": "string"
                },
                "vodOriginSecondaryUrl": {
                    "type": "string"
                }
            },
            "required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl", 
            "liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ],
            "additionalProperties": false
        },
        "hss": {
            "properties": {
                "streamProtocol": { "enum": [ "HSS" ] },
                "liveCdnUrl": {
                    "type": "string"
                },
                "vodCdnUrl": {
                    "type": "string"
                },
                "liveOriginPrimaryUrl": {
                    "type": "string" 
                },
                "vodOriginPrimaryUrl": {
                    "type": "string"
                },
                "liveOriginSecondaryUrl": {
                    "type": "string"
                },
                "vodOriginSecondaryUrl": {
                    "type": "string"
                }
            },
            "required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl", 
            "liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ], "additionalProperties": 
            false}, "dash": {
            "properties": {
                "streamProtocol": { "enum": [ "DASH" ] },
                "liveCdnUrl": {
                    "type": "string"
                },
                "vodCdnUrl": {
                    "type": "string"
                },
                "liveOriginPrimaryUrl": {
                    "type": "string"
                },
                "vodOriginPrimaryUrl": {
                    "type": "string"
                },
                "liveOriginSecondaryUrl": {
                    "type": "string"
                },
                "vodOriginSecondaryUrl": { 
                 "type": "string"
                }
            },
            "required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl", 
            "liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ],
            "additionalProperties": false},
        "hds": {
            "properties": {
                "streamProtocol": { "enum": [ "HDS" ] },
                "liveCdnUrl": {
                    "type": "string"
                },
                "vodCdnUrl": {
                    "type": "string"
                },
                "liveOriginPrimaryUrl": {
                    "type": "string"
                },
                "vodOriginPrimaryUrl": {
                    "type": "string"
                },
                "liveOriginSecondaryUrl": {
                    "type": "string"
                },
                "vodOriginSecondaryUrl": {
                    "type": "string"
                }
            },
            "required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl", 
            "liveOriginPrimaryUrl", "vodOriginPrimaryUrl"],"additionalProperties": false
        }
    }
}

PUT channel/{id}

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Response Body Params:

ID: {string} - Optional Parameter. Same ID will cause and Update

Name: {string} - Name

ConfigurationJson: {string} - The Template channel JSON. Has to be the same JSON 
                              structure as the GET                             

GET channel/statistics/{id}

Returns the Stats for the channels that are available within the HMS API

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON Response:

{
    "statistics": {
            "information": {
                "?xml": {
                    "@version": "1.0"
                },
                "HERAStats": {
                    "channel_id": "5",
                    "processId": "705",
                    "configName": "Channel 20",
                    "cpuLoad": "4.05",
                    "cpuSystemIdle": "93.99",
                    "cpuLoadMeasureDuration": "1.21",
                    "processMemory": "273700",
                    "vmSize": "1932724",
                    "videoPid": "0",
                    "audioPid0": "0",
                    "audioPid1": "0",
                    "audioPid2": "0",
                    "audioPid3": "0",
                    "inputFrameRate": "25.00",
                    "inputFrameCount": "55512",
                    "inputFrameLost": "0",
                    "inputFrameBuffered": "0",
                    "deinterlacedFrameBuffered": "0", 
                    "inputVideoBitRate": "124413986",
                    "inputAudioBitRate": "1535949",
                    "inputLostPackets": "0",
                    "inputPacketCount": "55512",
                    "inputAspectRatio": "4:3",
                    "inputByteCount": "34959237120",
                    "inputBytesDropped": "0",
                    "inputBitRate": "125953057",
                    "inputLastTime": "1437044031",
                    "startTime": "1437041811",
                    "currentTime": "1437044031",
                    "currentClock": "7524929",
                    "leftVolume": "255",
                    "rightVolume": "255",
                    "inputPcmLeveldB": "0.00",
                    "demuxerOffset": "0",
                    "vodProcState": "0",
                    "errorMessage": "",
                    "privateData": "",
                    "privateDataType": "0",
                    "channelPcmLevelsdB": "-1.$ -1.$ 0.0 0.0 0.0 0.0 0.0 0.0 ",
                    "progress": "0.00",
                    "outputCount": "4",
                    "statMode": "-1",
                    "sourceType": "6",
                    "sourceStat": "0",
                    "sourceInfo": "sdi[board_id:1 ch_id:1]",
                    "sourceReplaceFile": "",
                    "sourceReplaceType": "-1",
                    "videoFreeze": "0",
                    "audioSilence": "0",
                    "secondSource": {
                        "sourceType": "-1", 
                        "sourceStat": "-1",
                        "sourceInfo": ""
                        },
                    "muted": "0",
                    "myHmsIp": "10.196.50.49",
                    "stream": [
                        {
                            "@id": "0",
                            "videoTargetRate": "1300000",
                            "videoRate": "1315256",
                            "audioTargetRate": "64000",
                            "audioRate": "0",
                            "muxRate": "1315256",
                            "encoderLastClock": "7524929",
                            "encoderFrameCount": "55472",
                            "muxedLastClock": "7524929",
                            "muxedFrameCount": "55472",
                            "frameRate": "25.00",
                            "actualEncRate": "25.02",
                            "currentPosition": "0",
                            "totalDuration": "0",
                            "encodingSpeed": "0",
                            "progress": "0.00",
                            "videoCodecType": "0",
                            "audioCodecType": "2",
                            "dspId": "-2",
                            "coreId": "-1",
                            "dspLoad": "0.00",
                            "inputFrameBuffered": "0",
                            "outputFrameBuffered": "0",
                            "inputFrameCount": "55512",
                            "outputFrameCount": "55472",
                            "bufferedFrameCount": "40", 
                            "outputStartTime": "1437041809"
                        },
                        {
                            "@id": "1",
                            "videoTargetRate": "850000",
                            "videoRate": "852891",
                            "audioTargetRate": "64000",
                            "audioRate": "0",
                            "muxRate": "852891",
                            "encoderLastClock": "7524929",
                            "encoderFrameCount": "55473",
                            "muxedLastClock": "7524929",
                            "muxedFrameCount": "55473",
                            "frameRate": "25.00",
                            "actualEncRate": "24.99",
                            "currentPosition": "0",
                            "totalDuration": "0",
                            "encodingSpeed": "0",
                            "progress": "0.00",
                            "videoCodecType": "0",
                            "audioCodecType": "2",
                            "dspId": "-2",
                            "coreId": "-1",
                            "dspLoad": "0.00",
                            "inputFrameBuffered": "0",
                            "outputFrameBuffered": "0",
                            "inputFrameCount": "55512",
                            "outputFrameCount": "55474",
                            "bufferedFrameCount": "38",
                            "outputStartTime": "1437041809"
                        },
                        {
                            "@id": "2", 
                            "videoTargetRate": "300000",
                            "videoRate": "299267",
                            "audioTargetRate": "64000",
                            "audioRate": "64054",
                            "muxRate": "363537",
                            "encoderLastClock": "7524929",
                            "encoderFrameCount": "55474",
                            "muxedLastClock": "7524929",
                            "muxedFrameCount": "55474",
                            "frameRate": "25.00",
                            "actualEncRate": "25.01",
                            "currentPosition": "0",
                            "totalDuration": "0",
                            "encodingSpeed": "0",
                            "progress": "0.00",
                            "videoCodecType": "0",
                            "audioCodecType": "1",
                            "dspId": "-2",
                            "coreId": "-1",
                            "dspLoad": "0.00",
                            "inputFrameBuffered": "0",
                            "outputFrameBuffered": "18",
                            "inputFrameCount": "55512",
                            "outputFrameCount": "55474",
                            "bufferedFrameCount": "38",
                            "outputStartTime": "1437041809"
                        },
                        {
                            "@id": "3",
                            "videoTargetRate": "850000",
                            "videoRate": "852336",
                            "audioTargetRate": "64000",
                            "audioRate": "64043", 

                            "muxRate": "917146",
                            "encoderLastClock": "7524929",
                            "encoderFrameCount": "55475",
                            "muxedLastClock": "7524929",
                            "muxedFrameCount": "55474",
                            "frameRate": "25.00",
                            "actualEncRate": "25.00",
                            "currentPosition": "0",
                            "totalDuration": "0",
                            "encodingSpeed": "0",
                            "progress": "0.00",
                            "videoCodecType": "0",
                            "audioCodecType": "1",
                            "dspId": "-2",
                            "coreId": "-1",
                            "dspLoad": "0.00",
                            "inputFrameBuffered": "0",
                            "outputFrameBuffered": "0",
                            "inputFrameCount": "55512",
                            "outputFrameCount": "55474",
                            "bufferedFrameCount": "38",
                            "outputStartTime": "1437041809"
                        }
                    ]
                }
            },
            "isRunning": true
        },
        {
            "information": {},
            "isRunning": false
        }
    ] 
   }
}

Logs

GET log

Note: Could be useful for displaying errors in the admin.

Query Params:

Level: {string}  
-    'Trace' or 'Debug' or 'Info' or 'Warn' or 'Error' or 'Fatal'

From: {ISO8601 string}
-    Datetime. E.g. '2015-04-21T11:48:38Z' or '2015-04-21T12:48:38+01:00'

To: {ISO8601 string}
-    Datetime. E.g. '2015-04-21T12:48:38Z' or '2015-04-21T13:48:38+01:00'

Page Size: {int}
-    The page size to return. E.g. 10.

Page Number:  {int}

Order: {string}
-    'ASC' or 'DESC'

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON Response:

{    
    {
        "id": 16,
        "callSite": "VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\\DevWork\
            \vualto-ip-videoplatform\\src\\VuPlatform.VIS.Service\\Logging\
            \VISLogging.cs:73)", "date":"2015-07-08T11:54:50Z",
        "exception": "", 
        "level": "Warn", 
        "logger": "VuPlatform.VIS.Service.Logging.VISLogging",
        "machineName": "CHRIS-PC",
        "message": "Event has been deleted with ID 
            2d5336e5-1e30-4ced-bf6a-1bd3a17d2485",
        "stackTrace": "<no type>.lambda_method => EventController.Delete => 
            VISLogging.Log",
        "thread": "14", 
        "username": "IIS APPPOOL\\vualto VIS" 
    },
    {   "id": 17, "callSite": "VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\
            \DevWork\\vualto-ip-videoplatform\\src\\VuPlatform.VIS.Service\\Logging\
            \VISLogging.cs:73)", 
        "date":"2015-07-08T11:55:29Z",
        "exception": "",
        "level": "Warn",
        "logger": "VuPlatform.VIS.Service.Logging.VISLogging", 
        "machineName": "CHRIS-PC", 
        "message":"Event has been deleted with 
            ID 2d5336e5-1e30-4ced-bf6a-1bd3a17d2485",
        "stackTrace": "<no type>.lambda_method 
        => EventController.Delete => VISLogging.Log", 
        "thread":"14",
        "username": "IISAPPPOOL\\vualtoVIS"   
    },   
    {
        "id":18, 
        "callSite":"VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\
            \DevWork\\vualto-ipvideoplatform\\src\\VuPlatform.VIS.Service\\Logging\
            \VISLogging.cs:73)",
        "date": "2015-07-08T11:57:33Z",  
        "exception": "",
        "level": "Warn", 
        "logger": "VuPlatform.VIS.Service.Logging.VISLogging", 
        "machineName": "CHRIS-PC",
        "message": "Event has been deleted with ID: 
            2d5336e5-1e30-4ced-bf6a-1bd3a17d2485. API Key: 
            25f0d858-b112-4fc38498-f1245e95fb2a", 
        "stackTrace":"<notype>.lambda_method => EventController.Delete => 
            VISLogging.Log", "thread":"6","username":
        "IISAPPPOOL\\vualtoVIS"   
    }

Events

Event States

    PRE_LIVE
    This is the events initial state. It's possible to set an event back to pre-live and 
    this will remove the existing publishing point.

    LIVE_UNPUBLISHED
    This will start the encoder and create the publishing point. However, the state can 
    signal to a player that the stream should not yet be displayed.

    LIVE_PUBLISHED
    This will start the encoder if not already started, and create the publishing point. 
    The published state can be use to signal to a player that the stream is ready for 
    public viewing.

    SUSPENDED
    This state provides a way to stop the encoder, but keep the publishing point active 
    so that when the encoder restarts (e.g. change back to a LIVE state), it continues 
    streaming. This will also mean the VOD will not contain data when the encoder was 
    not publishing, and will appear seemless to a user.

    STOPPED
    This will stop the encoder and end the stream. This state will naturally 
    transition to INSTANT_VOD.

    INSTANT_VOD
    This state behaves the same as above but signifies the INSTANT_VOD is ready.

    INSTANT_VOD_BACKUP 
    The Instant VOD has been backed up to longer term storage, but no longer stream able. 
    INSTANT_VOD_BACKUP and INSTANT_VOD_DELETE is a configuration setting and can only be 
    one or the other.

    INSTANT_VOD_DELETE 
    The instant VOD has been deleted and is no longer stream able.
    INSTANT_VOD_BACKUP and INSTANT_VOD_DELETE is a configuration setting and can only be 
    one or the other.

    PRE_VOD
    The metadata is in the system, but no physical VOD asset has been attached.

    VOD_INGESTING
    The VOD is currently ingesting and will be available once completed.

    VOD_PRIVATE
    The VOD is private and only viewable from the protected URL. 
    When putting an event into private, please clear the CDN cache.

    VOD_PUBLIC
    The VOD is public and available to the CDN for public usage.           

GET event/{id}

Query Params:

StreamSource: {string}
- 'CDN_INDEX_0' or 'CDN_INDEX_1' or 'ORIGIN_PRIMARY_INDEX_0' or
'ORIGIN_SECONDARY_INDEX_0' or 'ORIGIN_PRIMARY_INDEX_1' or
'ORIGIN_SECONDARY_INDEX_1' 

A stream source for the event object. Index 0 will relate to single threaded channel 
(first encoder channel). Index 1 will related to multithreaded channel (second encoder
channel). Handy if you want to see what the output is from any of the output stream 
sources.

AutoStart: {bool}
- 'True' or 'False' : Auto start the simple player.

ProcessVideo: {bool}
- 'True' or 'False' : Process the video object of the event. This will return 
                      player urls, embed codes and output stream urls.


Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON response:

{    
"video": {
    "webPageUrl": null,
    "playerUrl": "http://local.simpleplayer.vualto/player/embedcode
           /2d5336e5-1e30-4ced-bf6a1bd3a17d2484?streamSource=ORIGIN_PRIMARY_INDEX_0",
    "embedCode":"",
    "scriptablePlayerUrl":"http://local.simpleplayer.vualto/player/embedcode
        /2d5336e5-1e30-4ced-bf6a1bd3a17d2484?scriptable=True&streamSource=
        ORIGIN_PRIMARY_INDEX_0",
    "scriptableEmbedCode":"<div id=\"embedCodeIFrame\"></div>\r\n<script type=\"text
        /javascript\">\r\n var src=\"http://local.simpleplayer.vualto/Player/Index
        /2d5336e5-1e30-4ced-bf6a1bd3a17d2484?streamSource=ORIGIN_PRIMARY_INDEX_0\";
        \r\n src+=\"#\"+ encodeURIComponent(document.location.href);\r\n
        $(\"#embedCodeIFrame\").replaceWith(\"<iframe src=\\\"\" src+\"\\\" id=\\\
        "VuPlayer\\\"name=\\\"UKPPlayer\\\" title=\\\"VuPlayer\\\" seamless=\\\
        "seamless\\\" frameBorder=\\\"0\\\"allowfullscreen style=\\\
        "width:100%;height:100%;\\\"></iframe>\");\r\n</script>",
    "requestedInPoint": null, 
    "requestedOutPoint": null, 
    "requestedAudioOnly": false,
    "requestedAutoStart": false, 
    "liveUrls": [{"streamProtocol": 0, "streamProtocolString": "HLS",
                "url": "http://cc.vualto.org/live/ou/crw02/ch01
                    /2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.m3u8",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            }, 
            {
                "streamProtocol": 3,
                "streamProtocolString": "DASH",
                "url": "http://cc.vualto.org/live/ou/crw02/ch01
                    /2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.mpd",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            },
            {
                "streamProtocol": 2,
                "streamProtocolString": "HSS",
                "url": "http://80.169.3.216/live/ou/crw02/ch01
                    /2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/Manifest",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            },
            {
                "streamProtocol": 4,
                "streamProtocolString": "HDS",
                "url": "http://80.169.3.216/live/ou/crw02/ch01
                    /2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.f4m",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            }
        ],
        "vodUrls": [
            {
                "streamProtocol": 0,
                "streamProtocolString": "HLS",
                "url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
                    bf6a1bd3a17d2484/vod.isml/vod.m3u8?t=2015-07-06T14:48:08", 
                "streamSource":2, 
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"},
            { 
                "streamProtocol":3,
                "streamProtocolString": "DASH",
                "url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-         
                    bf6a1bd3a17d2484/vod.isml/vod.mpd?t=2015-07-06T14:48:08",
                "streamSource":2, 
                "streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
            },       
                {"streamProtocol":2,
                "streamProtocolString":"HSS",
                "url":"http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
                    bf6a1bd3a17d2484/vod.isml/Manifest?t=2015-07-06T14:48:08",
                "streamSource":2, 
                "streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
            },
                {"streamProtocol":4, 
                "streamProtocolString":"HDS", 
                "url":"http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-   
                    bf6a1bd3a17d2484/vod.isml/vod.f4m?t=2015-07-06T14:48:08",
                "streamSource": 2, 
                "streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
            }],
        "currentStateUrls":
                [ 
                {"streamProtocol":0,
                "streamProtocolString":"HLS", 
                "url":"http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a- 
                    1bd3a17d2484/vod.isml/vod.m3u8",
                "streamSource":2, 
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
                },
                { "streamProtocol":3,
                "streamProtocolString": "DASH",
                "url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
                    1bd3a17d2484/vod.isml/vod.mpd",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            },
            {
                "streamProtocol": 2,
                "streamProtocolString": "HSS",
                "url": "http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
                    1bd3a17d2484/vod.isml/Manifest",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            },
            {
                "streamProtocol": 4,
                "streamProtocolString": "HDS",
                "url": "http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
                    1bd3a17d2484/vod.isml/vod.f4m",
                "streamSource": 2,
                "streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
            }
        ]
    },
    "id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
    "title": "Education Panel",
    "scheduledStart": "2015-06-12T13:25:00Z",
    "scheduledEnd": "2015-06-12T14:40:00Z",
    "eventTypeId": null,
    "categoryId": null,
    "roomId": null,
    "eventType": "",
    "category": "",
    "room": "",
    "state": 4,
    "stateString": "STOPPED", 
    "channelId": "dab1ba3f-1e21-4473-bcdf-a9d77f92b847",
    "actualLiveStart": "2015-07-06T14:48:08Z",
    "actualLiveEnd": null,
    "publishedStart": "2015-07-06T14:48:37Z",
    "documents": "http://local.vis.vualto/api/document/event
        /2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
    "tags": "http://local.vis.vualto/api/tag/event/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484"
  }

GET event

Get all Events

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Body Params:

From: {ISO8601 string} 
datetime. E.g. “2015-04-21T11:48:38Z” or “2015-04-21T12:48:38+01:00”

To: {ISO8601 string}
datetime. E.g. “2015-04-21T12:48:38Z” or “2015-04-21T13:48:38+01:00”

Page Size: {int}
The page size to return. E.g. “10”.

Page Number: {int}

Order: {string}
“ASC” or “DESC”

Channel: {string}
Name of a channel. E.g. “OU CRW02 Channel01”

Example JSON response:

{ 
    "results": [
        {
            "video": null,
            "id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
            "title": "Education Panel",
            "scheduledStart": null,
            "scheduledEnd": "2015-06-12T14:40:00Z",
            "eventTypeId": null,
            "categoryId": null,
            "roomId": null,
            "eventType": "",
            "category": "",
            "room": "",
            "state": 0,
            "stateString": "PRE_LIVE",
            "channelId": "605143ce-d20c-4485-a554-0cb2901ded11",
            "actualLiveStart": "2015-06-12T13:25:00Z",
            "actualLiveEnd": "2015-07-15T10:52:48Z",
            "publishedStart": "2015-06-12T13:25:00Z",
            "channel": "OU CRW02 Channel01 and OU CRW02 Channel02",
            "displayStart": "2015-06-12T13:25:00Z",
            "displayEnd": "2015-07-15T10:52:48Z",
            "autoStart": false,
            "autoEnd": false,
            "documents": null,
            "tags": null
        },
        {
            "video": null,
            "id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2485", 
            "title": "Education Panel",
            "scheduledStart": "2015-06-14T13:25:00Z",
            "scheduledEnd": null,
            "eventTypeId": null,
            "categoryId": null,
            "roomId": null,
            "eventType": "",
            "category": "",
            "room": "",
            "state": 0,
            "stateString": "PRE_LIVE",
            "channelId": "dab1ba3f-1e21-4473-bcdf-a9d77f92b847",
            "actualLiveStart": "2015-07-15T10:53:09Z",
            "actualLiveEnd": "2015-07-15T10:43:27Z",
            "publishedStart": "2015-07-15T10:53:09Z",
            "channel": "OU CRW02 Channel01",
            "displayStart": "2015-07-15T10:53:09Z",
            "displayEnd": "2015-07-15T10:43:27Z",
            "autoStart": false,
            "autoEnd": false,
            "documents": null,
            "tags": null
        }
    ],
    "totalCount": 2,
    "pageSize": 2
} 

POST event

All parameters are optional and can be omitted apart from ID which is required for updating or if you want to create your own ID. ScheduledEnd parameter can be omitted or left empty to signify the event will never end.

Example request:

Headers:

X-Auth-Key: {string}

X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Body Params: Note: '?' indicates Optional Parameter.

id: {guid?}

Title: {string}

ScheduledStart: {ISO8601 string}

ScheduledEnd: {ISO8601 string}

AutoStart: {bool}

AutoEnd: {bool}

ChannelID: {guid}

PublishedStart: {string}

PublishedEnd: {string}

RoomId: {guid?}

EventTypeId: {guid?}

CategoryId: {guid?}

ChannelId: {guid?}

DrmJson: {string}

AdditionalStreamingOptions: {string}

Tags: IEnumerable<TagModel>

Example DrmJson parameter:

{
  "drm_provider": "VUALTO",
  "drm_data": 
  [
    {
      "name": "CENC"
    },
    {
      "name": "FAIRPLAY",
      "ask": "asdasdadasd",
      "pem-file-url": "https://vualto-drm-resources.s3.amazonaws.com/clients/VUALTO
        /VUALTO.pem",
      "der-file-url": "https://vualto-drm-resources.s3.amazonaws.com/clients/VUALTO
        /VUALTO.der"
    },
    {
      "name": "AES"
    }
  ]
}

DELETE event/{id}

Example request:

Request headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

PUT event/forcestop/{id}

Use this method to force an event into a stopped state. This function will also force stop the encoder channel it’s running under bypassing the concurrency lock mechanism and removing any existing locks. Should be used as a last resort in case the lock synchronisation becomes out of sync. Potentially dangerous as no checks will be made to see if an event channel encoder is already running.

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

PUT event/state/{id}

Use update state to start and stop the encoders for the event.

Send “ LIVE_PUBLISHED” to start the encoder.

Send “ STOPPED” to stop the encoder.

Example request:

Request headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Body Params:

State

“PRE_LIVE” or “LIVE_PUBLISHED” or “STOPPED”

PUT event/vuflow/protection/{contentId}

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params:

VuflowProtectionModel Model:

protection: {string} VOD_PUBLIC VOD_PRIVATE

Example response:

Headers:

X-Transaction-ID: {string}

GET event/reference/{referenceId}

Get Event by Reference Id

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Query Params:

referenceId : {string}
- client assigned reference Id

Example response:

Headers:

X-Transaction-ID: {string}    

Example JSON response:


{
  "video": {
    "webPageUrl": null,
    "playerUrl": "http://local.player.vuworkflow.vualto.vualto.com/player/embedcode
        /f4faec6a-e2da-451f-bc10-ec63a066e9c0",
    "embedCode": "",
    "scriptablePlayerUrl": "http://local.player.vuworkflow.vualto.vualto.com/player
        /embedcode/f4faec6a-e2da-451f-bc10-ec63a066e9c0?scriptable=True",
    "scriptableEmbedCode": "",
    "requestedInPoint": null,
    "requestedOutPoint": null,
    "requestedAudioOnly": false,
    "requestedAutoStart": false,
    "liveUrls": [],
    "vodUrls": [],
    "currentStateUrls": []
  },
  "id": "f4faec6a-e2da-451f-bc10-ec63a066e9c0",
  "title": "Vod Event Test",
  "refId": "Reference XYZ",
  "scheduledStart": "2016-11-04T09:30:00Z",
  "scheduledEnd": "2016-11-04T11:30:00Z",
  "eventTypeId": "41450c8a-1959-4a49-91a2-a7b137efd479",
  "categoryId": "7a03d03c-b751-4de4-8912-caec34e66f7f",
  "roomId": null,
  "eventType": "NEW Event Type ",
  "category": "Post Newton Category",
  "room": "",
  "state": 8,
  "stateString": "PRE_VOD",
  "channelId": null,
  "actualLiveStart": null,
  "actualLiveEnd": null,
  "publishedStart": null,
  "channel": "",
  "displayStart": "2016-11-04T09:30:00Z",
  "displayEnd": "2016-11-04T11:30:00Z",
  "autoStart": false,
  "autoEnd": false,
  "publishedEnd": null,
  "drmJson": "{\"drm_provider\":\"NONE\"}",
  "drmData": null,
  "documents": "http://local.vis.vuworkflow.vualto.vualto.com/api/document/event
    /f4faec6a-e2da-451f-bc10-ec63a066e9c0",
  "tags": "http://local.vis.vuworkflow.vualto.vualto.com/api/tag/event
    /f4faec6a-e2da-451f-bc10-ec63a066e9c0",
  "additionalStreamingOptions": "--archive_segment_length=600 --archiving=1 
    --archive_length=259200 --dvr_window_length=43200 --restart_on_encoder_reconnect 
    --iss.minimum_fragment_length=10 --hls.minimum_fragment_length=10 
    --hls.client_manifest_version=4 --hls.no_audio_only",
  "taskEngineJson": "",
  "vuflowId": "f3923c74-5a1c-4620-a5ca-6e48fcaeb066",
  "vuflow": "Mikes Vuflow",
  "dvrLength": null,
  "maxBitrate": null,
  "minBitrate": null,
  "vodDrm": false
}

Categories

POST category

Add New category

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

Name: {string}

PUT category

Update category

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

Name: {string}

GET category

Get ALL categories

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response

[
  {
    "id": "1e57588e-5d73-4960-ac80-9d759336ac55",
    "name": "Test Category Add 2",
    "systemCategory": false
  },
  {
    "id": "bd077c44-749e-4f87-9421-9b871be39fff",
    "name": "Test Category Add 3",
    "systemCategory": false
  },
  {
    "id": "6a29d3bf-54ab-4d1a-9275-659d77c7f21a",
    "name": "Test Category Update",
    "systemCategory": false
  }
]

GET category/{id}

Get category by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

{
  "id": "1e57588e-5d73-4960-ac80-9d759336ac55",
  "name": "Test Category Add 2",
  "systemCategory": false
}

DELETE category/{id}

Delete category by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Documents

POST document

Add/Update Document Model: Add: leave out optional Body Parameters Update: use all parameters

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

EventId: {guid}

DocumentId: {guid?} - optional

Title: {string }

Url: {string}

Order: {int?} - optional

GET Document

Get ALL documents

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response

[
  {
    "id": "ba1ece20-9570-49de-b6ca-57307eb643aa",
    "order": 3,
    "name": "Test Document 2",
    "url": "https://abc.def.com"
  },
  {
    "id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
    "order": 2,
    "name": "Test Document",
    "url": "https://abc.def.com"
  },
  {
    "id": "98ece7b9-8c92-4143-ae50-c87302598f1a",
    "order": 1,
    "name": "Test Document",
    "url": "https://abc.def.com"
  },
  {
    "id": "f0da9a6e-9673-4b54-97e3-d24e5d9c81e6",
    "order": 4,
    "name": "Test Document 3",
    "url": "https://abc.def.com"
  }
]

GET Document/{id}

Get document by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response

{
  "id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
  "order": 2,
  "name": "Test Document",
  "url": "https://abc.def.com"
}

DELETE Document/{id}

Delete document by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

GET Document/event/{id}

Get document models fo an event by Event Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response

[
  {
    "id": "ba1ece20-9570-49de-b6ca-57307eb643aa",
    "order": 3,
    "name": "Test Document 2",
    "url": "https://abc.def.com"
  },
  {
    "id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
    "order": 2,
    "name": "Test Document",
    "url": "https://abc.def.com"
  },
  {
    "id": "f0da9a6e-9673-4b54-97e3-d24e5d9c81e6",
    "order": 4,
    "name": "Test Document 3",
    "url": "https://abc.def.com"
  }
]

PUT Document/{id}/order/{int}

Update Order for a document by document Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Event Types

POST eventtype

Add new Event Type.

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

Name: {string}

PUT eventtype/{id}

Update an Event Type.

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

Name: {string}

GET eventtype

Get ALL Event Types.

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response

[
  {
    "id": "36728f24-ceca-41fd-983e-3e7d8e85ba43",
    "name": "Test Event Type 6"
  },
  {
    "id": "e08ce849-8627-4ed7-b8b5-7930446499ef",
    "name": "Test Event Type 2"
  },
  {
    "id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
    "name": "Test Event Type 3"
  },
  {
    "id": "c158c02a-245b-4fbf-b8df-c2a318947e81",
    "name": "Test Event Type Update"
  },
  {
    "id": "19f59e69-0515-4d40-ab61-ec891437cbf7",
    "name": "Test Event Type 4"
  },
  {
    "id": "7682feba-99b5-4e38-a152-f0ca0ebf872b",
    "name": "Test Event Type 5"
  }
]

GET eventtype/{id}

Get Event Type by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response


{
  "id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
  "name": "Test Event Type 3"
}

DELETE eventtype/{id}

Delecte Event Type by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Health

Get the Health of the system - Ping

GET health

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Recess

GET recess/messsage

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

{
  "message": "TEST recess Message"
}

PUT Recess/messsage

Update Recess Message

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params

Message: {string}

Rooms

GET room

Get ALL room data

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

{
  "id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
  "name": "Test Room 1"
},
{
  "id": "aa65b9f3-614b-4162-b64e-a812956aaa1e",
  "name": "Test Room 2"
},
{
  "id": "ff11b9f3-614b-4162-b64e-a812956aaa1e",
  "name": "Test Room 3"
}

GET room/{id}

Get room data by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

{
  "id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
  "name": "Test Room 1"
}

Tags

POST tag

Add a new Tag

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params:

Name: {string}

PUT tag

Update a Tag

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params:

Id: {guid}
Name: {string}

DELETE tag/{id}

Delete a Tag

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

GET tag

Get ALL Tags

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

[
  {
    "id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
    "name": "test tag 5 update"
  },
  {
    "id": "666508ff-4d27-4329-a97f-9babe996af9a",
    "name": "test tag 2"
  },
  {
    "id": "6a7fee54-e597-4cd6-a0a9-bf8b0c7f8bff",
    "name": "test tag 3"
  },
  {
    "id": "ec8f26d2-c61e-4cb5-8e79-e391ac01c6a4",
    "name": "test tag 4"
  }
]

GET tag/{id}

Get Tag by Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

{
    "id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
    "name": "test tag 5 update"
}

GET tag/event/{id}

Get ALL Tags by/for Event Id

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example JSON response:

[
  {
    "id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
    "name": "test tag 5 update"
  },
  {
    "id": "666508ff-4d27-4329-a97f-9babe996af9a",
    "name": "test tag 2"
  },
  {
    "id": "ec8f26d2-c61e-4cb5-8e79-e391ac01c6a4",
    "name": "test tag 4"
  }
]

PUT tag/event/{id}

Update Tags by Event Id. Refreshes Tag data for Event Id.

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Body Params:

Tag Models:

Id: {guid}
Name: {string}

GET tag/exists/{text}

Test if Tag exists by Text (Tag Name)

Example request

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response

Headers:

X-Transaction-ID: {string}

Example response:

true/false

Vuflow

GET vuflow/{id}

Get vuflow data for id

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON response:


{
id : "a5d067bd-cb45-4d7b-814c-e1caa0833304",
configurationJson : "{ "vuflows": 
    "name": "1x vuflow Task Engine", 
    "type": "TaskEngine", 
    "taskEngineSpecific": { "apiUrl": "http://taskengine.vuworkflow.vualto.com" }, 
    "streamingServer": { "type": "USP", 
                         "streamingServerSpecific": 
                         {"primaryPublishingPoint": 
                            { "uspAPI": "http://ingest.staging.vrt.vualto.com:9292", 
                               "uspAPIKey": "55940a43-a4e6-430f-8977-45fa2f37f744" }, 
                               "secondaryPublishingPoint": 
                               { "uspAPI": "", 
                                 "uspAPIKey": "" } 
                        } }, 
"outputUrls": [ 
    {"streamProtocol": "HLS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.m3u8", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.m3u8","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "DASH", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.mpd", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.mpd","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "HSS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/Manifest", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /Manifest","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "HDS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.f4m",
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.f4m","vodOriginSecondaryUrl": "" } ] 
        } ] 
    }"
    name : "Vuflow Default"
}

GET vuflow

Get all vuflow data

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON response:


{
id : "a5d067bd-cb45-4d7b-814c-e1caa0833304",
configurationJson : "{ "vuflows": 
    "name": "1x vuflow Task Engine", 
    "type": "TaskEngine", 
    "taskEngineSpecific": { "apiUrl": "http://taskengine.vuworkflow.vualto.com" }, 
    "streamingServer": { "type": "USP", 
                         "streamingServerSpecific": 
                         {"primaryPublishingPoint": 
                            { "uspAPI": "http://ingest.staging.vrt.vualto.com:9292", 
                               "uspAPIKey": "55940a43-a4e6-430f-8977-45fa2f37f744" }, 
                               "secondaryPublishingPoint": 
                               { "uspAPI": "", 
                                 "uspAPIKey": "" } 
                        } }, 
"outputUrls": [ 
    {"streamProtocol": "HLS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.m3u8", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.m3u8","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "DASH", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.mpd", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.mpd","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "HSS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/Manifest", 
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /Manifest","vodOriginSecondaryUrl": "" }, 
    {"streamProtocol": "HDS", 
      "vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.f4m",
      "vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
      /.f4m","vodOriginSecondaryUrl": "" } ] 
        } ] 
    }"
    name : "Vuflow Default"
}

    ... etc


POST vuflow

Add new vuflow data

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params:

AddUpdateVuflowModel Model:

name: {string} 
configurationJson: {string}

Example response:

Headers:

X-Transaction-ID: {string}

PUT vuflow/{id}

Update vuflow data

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params:

AddUpdateVuflowModel Model:

id: {guid}
name: {string} 
configurationJson: {string}

Example response:

Headers:

X-Transaction-ID: {string}

DELETE vuflow/{id}

Delete vuflow data

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

POST cdn

Add new CDN Provider

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params

AddUpdateCdnModel Model:

Id: {guid}
configurationJson: {string}
Nane: {string}

Example response:

Headers:

X-Transaction-ID: {string}

GET cdn/getcdnproviders

Get All CDN Providers

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON response:

[
  {
    "id": "4b78ddc0-b185-4f22-8448-dfd8c8456507",
    "configurationJson": 
     "{\"name\": \"Amazon S3\",\"type\": \"AMAZON_S3\",\"cdnSpecific\": 
        {\"cdnHost\": \"https://api.s3.com\",\"cdnPath\": \"/cdncontent/purge/\",
        \"customerNumber\": \"ah77d\",\"zoneId\": \"988dnjbhe\",\"secretKey\": 
        \"9yh87yh8yg8\"}}",
    "name": "Amazon S3"
  },
  {
    "id": "106aedc7-34a3-43cc-8399-132f26bb2598",
    "configurationJson": 
     "{\"name\": \"Amazon hh\",\"type\": \"AMAZON_S3\",\"cdnSpecific\": 
        {\"cdnHost\": \"https://api.AmazonZZ.com\",\"cdnPath\": \"/content/purge/\",
        \"customerNumber\": \"789954\",\"zoneId\": \"3589\",\"secretKey\": 
        \"jaljkhasdhasdladu\"}}",
    "name": "Amazon HH"
  }
]
...etc

GET cdn/{id}

Get CDN Provider for Id

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

Example JSON response:

[
  {
    "id": "4b78ddc0-b185-4f22-8448-dfd8c8456507",
    "configurationJson": 
     "{\"name\": \"Amazon S3\",\"type\": \"AMAZON_S3\",\"cdnSpecific\": 
        {\"cdnHost\": \"https://api.s3.com\",\"cdnPath\": \"/cdncontent/purge/\",
        \"customerNumber\": \"ah77d\",\"zoneId\": \"988dnjbhe\",\"secretKey\": 
        \"9yh87yh8yg8\"}}",
    "name": "Amazon S3"
  }
]

PUT cdn/{id}

Update CDN Provider

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params

AddUpdateCdnModel Model:

Id: {guid}
configurationJson: {string}
Nane: {string}

Example response:

Headers:

X-Transaction-ID: {string}

DELETE cdn/{id}

Delete CDN Provider

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Example response:

Headers:

X-Transaction-ID: {string}

POST cdn/clearcdncache/{id}

Invalidate CDN Provider cache

Example request:

Headers:

X-Auth-Key: {string}
X-Transaction-ID: {string}

Body Params

  ClearCdnModel Model:

  AltPath {string} (Alternative path to one in Configuration Json for the CDN)

Example response:

Headers:

X-Transaction-ID: {string}

Webhooks for Callback Urls

EventChangedPublisher

A POST endpoint needs to be set up to receive the following parameters to intercept EventChangedPublisher notifications. Supply us URL endpoints to receive the event state change notifications.

Parameters

EventId: {guid}
State: {EventState} (string)
StateChanged: {bool}

Example JSON HTTP POST

{
    "EventId": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
    "State": "LIVE", 
    "StateChanged": true    
}