REST API

The REST API is hosted by the LiveSwitch gateway. You can access the REST API provided you have IP-level access to the Admin endpoint (/admin by default). For example:

curl -X GET https://v1.liveswitch.fm:9443/admin/api/v1.0/applications

For those that enjoy using Swagger to explore and craft API calls, LiveSwitch Gateways ship with a Swagger UI that supports both REST and OData API flavours.

To switch between the V1 REST API and the V2 OData API, simply choose V1 or V2 in the drop-down menu at the top right of your Gateway's Swagger installation (by default, this is found at https://localhost:9443/admin/swagger). Swagger also supports OAuth, so instead of using your API key to authenticate, you can simply log in to Swagger using your LiveSwitch Console credentials when clicking the Authorize button.

v1 REST API Spec

{"swagger":"2.0","info":{"version":"1.0","title":"LiveSwitch REST API","description":"The LiveSwitch REST API."},"basePath":"/admin","paths":{"/api/v1/applications/{applicationId}":{"get":{"tags":["Applications"],"summary":"Gets high level snapshot of application information.","operationId":"GetApplicationSnapshot","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Application"}}}}},"/api/v1/applications":{"get":{"tags":["Applications"],"summary":"Gets a list of application ids currently in use.","operationId":"GetApplications","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ApplicationCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels":{"get":{"tags":["Channels"],"summary":"Gets of list of active channels.","operationId":"GetActiveChannels","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelCollectionItem"}}},"404":{"description":"Not Found"}}}},"/api/v1/applications/{applicationId}/channels/{channelId}":{"get":{"tags":["Channels"],"summary":"Gets a high level snapshot of channel information.","operationId":"GetChannel","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel Id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Channel"}},"404":{"description":"Not Found"}}},"put":{"tags":["Channels"],"summary":"Update channel config.","operationId":"UpdateChannelConfig","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"config","in":"body","description":"The new channel config.","required":false,"schema":{"$ref":"#/definitions/ChannelConfig"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"channel does not exist."}}},"delete":{"tags":["Channels"],"summary":"Kick everyone out of a channel.","operationId":"KickChannelClients","consumes":[],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"}],"responses":{"204":{"description":"successful operation"},"404":{"description":"channel does not exist."}}}},"/api/v1/applications/{applicationId}/users/{userId}/devices/{deviceId}/clients/{clientId}/channels":{"get":{"tags":["Channels"],"summary":"Gets a list of all channels that a specific client has joined.","operationId":"GetClientChannels","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ClientChannelCollectionItem"}}},"404":{"description":"Not Found"}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/message":{"post":{"tags":["Channels"],"summary":"Sends a message to the channel.","operationId":"SendChannelMessage","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"message","in":"body","description":"The message.","required":false,"schema":{"$ref":"#/definitions/ServerMessage"}}],"responses":{"204":{"description":"successful operation"},"400":{"description":"Bad Request"},"404":{"description":"channel does not exist."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/clients":{"get":{"tags":["Clients"],"summary":"Gets a list of all clients in a channel.","operationId":"GetChannelClients","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelClientCollectionItem"}}},"404":{"description":"Not Found"}}}},"/api/v1/applications/{applicationId}/users/{userId}/devices/{deviceId}/clients/{clientId}":{"get":{"tags":["Clients"],"summary":"Gets information about a specific client owned by a specific user.","operationId":"GetUserClient","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Client"}}}},"put":{"tags":["Clients"],"summary":"Updates the client config and sends out notifications to update other clients.","operationId":"UpdateClientRecords","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"},{"name":"newConfig","in":"body","description":"The new config to apply to the client.","required":false,"schema":{"$ref":"#/definitions/ClientConfig"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"client not found."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/clients/{clientId}":{"get":{"tags":["Clients"],"summary":"Gets a high level snapshot of a client in a channel owned by a specific device.","operationId":"GetChannelDeviceClient","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ChannelClient"}},"404":{"description":"Not Found"}}},"put":{"tags":["Clients"],"summary":"Updates the channel claim or other settings.","operationId":"UpdateChannelInformation","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"},{"name":"channelSettings","in":"body","description":"The new claims and other information to apply to the client.","required":false,"schema":{"$ref":"#/definitions/ChannelClientSettings"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"client not found."}}},"delete":{"tags":["Clients"],"summary":"Kick a client out of a channel.","operationId":"KickChannelClient","consumes":[],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"}],"responses":{"204":{"description":"successful operation"},"404":{"description":"client was not in channel."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/clients":{"get":{"tags":["Clients"],"summary":"Gets a list of clients in a channel owned by a specific device.","operationId":"GetChannelDeviceClients","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelClientCollectionItem"}}},"404":{"description":"Not Found"}}}},"/api/v1/applications/{applicationId}/users/{userId}/devices/{deviceId}/clients":{"get":{"tags":["Clients"],"summary":"Gets a list of all clients owned by a device.","operationId":"GetUserDeviceClients","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ClientCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/clients/{clientId}/message":{"post":{"tags":["Clients"],"summary":"Sends a message to a client in the channel.","operationId":"SendChannelClientMessage","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"},{"name":"message","in":"body","description":"The message.","required":false,"schema":{"$ref":"#/definitions/ServerMessage"}}],"responses":{"204":{"description":"successful operation"},"400":{"description":"Bad Request"},"404":{"description":"client was not in channel."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/connections":{"get":{"tags":["Connections"],"summary":"Gets a list of all connections in a channel.","operationId":"GetChannelConnections","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelConnectionCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/clients/{clientId}/connections/{connectionId}":{"get":{"tags":["Connections"],"summary":"Queries the reports to get the connection info for a connection in a channel owned by a specific client.","operationId":"GetChannelClientConnection","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"},{"name":"connectionId","in":"path","description":"The connection id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ConnectionInfo"}}}},"put":{"tags":["Connections"],"summary":"Update connection config.","operationId":"UpdateConnectionConfig","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"},{"name":"connectionId","in":"path","description":"The connection id.","required":true,"type":"string"},{"name":"config","in":"body","description":"The new connection config.","required":false,"schema":{"$ref":"#/definitions/ChannelConfig"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"user, device, client, connection, or channel does not exist."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/clients/{clientId}/connections":{"get":{"tags":["Connections"],"summary":"Gets a list of connections in a channel owned by a specific client.","operationId":"GetChannelClientConnections","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"clientId","in":"path","description":"The client id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelConnectionCollectionItem"}}}}}},"/api/v1/connector":{"get":{"tags":["Connector"],"summary":"Get a list of all registered connectors.","description":"","operationId":"GetConnectors","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Connector"}}}}}},"/api/v1/connectors":{"get":{"tags":["Connector"],"summary":"Get a list of all registered connectors.","description":"","operationId":"GetConnectors","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Connector"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/devices":{"get":{"tags":["Devices"],"summary":"Gets a list of all devices in a channel.","operationId":"GetChannelDevices","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelDeviceCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}":{"get":{"tags":["Devices"],"summary":"Gets a high level snapshot of a device in a channel owned by a specific user.","operationId":"GetChannelUserDevice","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ChannelDevice"}},"404":{"description":"device not found in this channel"}}},"put":{"tags":["Devices"],"summary":"Update device config settings.","operationId":"UpdateDeviceConfig","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"config","in":"body","description":"The new device config config.","required":false,"schema":{"$ref":"#/definitions/DeviceConfig"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"user, device, or channel does not exist."}}},"delete":{"tags":["Devices"],"summary":"Kick a device out of a channel.","operationId":"KickChannelDevice","consumes":[],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"}],"responses":{"204":{"description":"successful operation"},"404":{"description":"device was not in channel."}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices":{"get":{"tags":["Devices"],"summary":"Gets a list of devices in a channel owned by a specific user.","operationId":"GetChannelUserDevices","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelDeviceCollectionItem"}}},"404":{"description":"device not found in this channel"}}}},"/api/v1/applications/{applicationId}/users/{userId}/devices/{deviceId}":{"get":{"tags":["Devices"],"summary":"Gets information about a specific device owned by a specific user.","operationId":"GetUserDevice","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Device"}}}}},"/api/v1/applications/{applicationId}/users/{userId}/devices":{"get":{"tags":["Devices"],"summary":"Gets a list of all devices owned by a user.","operationId":"GetUserDevices","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DeviceCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/devices/{deviceId}/message":{"post":{"tags":["Devices"],"summary":"Sends a message to a device in the channel.","operationId":"SendChannelDeviceMessage","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"deviceId","in":"path","description":"The device id.","required":true,"type":"string"},{"name":"message","in":"body","description":"The message.","required":false,"schema":{"$ref":"#/definitions/ServerMessage"}}],"responses":{"204":{"description":"successful operation"},"400":{"description":"Bad Request"},"404":{"description":"device was not in channel."}}}},"/api/v1/datastore/dump":{"get":{"tags":["Diagnostics"],"summary":"Gets a dump of the raw datastore data.","operationId":"DumpDatastore","consumes":[],"produces":[],"parameters":[],"responses":{"200":{"description":"successful operation"}}}},"/api/v1/mediaservers/{mediaServerId}":{"get":{"tags":["MediaServers"],"summary":"Get the connection information for a specific Media Server.","operationId":"GetMediaServer","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"mediaServerId","in":"path","description":"ID of media server to return","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/MediaServerReport"}},"404":{"description":"Media Server not found"}}},"put":{"tags":["MediaServers"],"summary":"Update a Media Server by it's ID","operationId":"UpdateMediaServer","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"mediaServerId","in":"path","description":"ID of media server to update","required":true,"type":"string","format":"uuid"},{"name":"body","in":"body","description":"","required":false,"schema":{"$ref":"#/definitions/MediaServerUpdate"}}],"responses":{"200":{"description":"successful operation"},"404":{"description":"media server not found."}}}},"/api/v1/mediaservers":{"get":{"tags":["MediaServers"],"summary":"Get a list of all active and inactive media servers.","operationId":"GetMediaServers","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaServer"}}}}}},"/api/v1/mediaservers/stats/{mediaServerId}":{"get":{"tags":["MediaServers"],"summary":"Get the connection information for a specific Media Server.","operationId":"GetMediaServerConnectionStats","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"mediaServerId","in":"path","description":"ID of media server to return","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/MediaServerStats"}},"404":{"description":"Media Server not found"}}}},"/api/v1/mediaservers/stats":{"get":{"tags":["MediaServers"],"summary":"Get the connection information for all Media Servers.","operationId":"GetAllMediaServerConnectionStats","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaServerStats"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users":{"get":{"tags":["Users"],"summary":"Gets a list of users in the channel.","operationId":"GetChannelUsers","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelUserCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}":{"get":{"tags":["Users"],"summary":"Gets a high level snapshot of a user in the channel.","operationId":"GetChannelUser","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ChannelUser"}}}},"put":{"tags":["Users"],"summary":"Update user config.","operationId":"UpdateUserConfig","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"config","in":"body","description":"The new user recording config.","required":false,"schema":{"$ref":"#/definitions/UserConfig"}}],"responses":{"204":{"description":"successful operation"},"404":{"description":"user or channel does not exist."}}},"delete":{"tags":["Users"],"summary":"Kick a user out of a channel.","operationId":"KickChannelUser","consumes":[],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The userid.","required":true,"type":"string"}],"responses":{"204":{"description":"successful operation"},"404":{"description":"user was not in channel."}}}},"/api/v1/applications/{applicationId}/users":{"get":{"tags":["Users"],"summary":"Gets a list of all users for this application.","operationId":"GetApplicationUsers","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/UserCollectionItem"}}}}}},"/api/v1/applications/{applicationId}/users/{userId}":{"get":{"tags":["Users"],"summary":"Gets information about a specific user.","operationId":"GetApplicationUser","consumes":[],"produces":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","text/plain","text/json"],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/User"}}}}},"/api/v1/applications/{applicationId}/channels/{channelId}/users/{userId}/message":{"post":{"tags":["Users"],"summary":"Sends a message to a user in the channel.","operationId":"SendChannelUserMessage","consumes":["application/json;odata.metadata=minimal;odata.streaming=true","application/json;odata.metadata=minimal;odata.streaming=false","application/json;odata.metadata=minimal","application/json;odata.metadata=full;odata.streaming=true","application/json;odata.metadata=full;odata.streaming=false","application/json;odata.metadata=full","application/json;odata.metadata=none;odata.streaming=true","application/json;odata.metadata=none;odata.streaming=false","application/json;odata.metadata=none","application/json;odata.streaming=true","application/json;odata.streaming=false","application/json","application/xml","application/prs.odatatestxx-odata","application/json-patch+json","application/json","text/json","application/*+json"],"produces":[],"parameters":[{"name":"applicationId","in":"path","description":"Id of the application.","required":true,"type":"string"},{"name":"channelId","in":"path","description":"The channel id.","required":true,"type":"string"},{"name":"userId","in":"path","description":"The user id.","required":true,"type":"string"},{"name":"message","in":"body","description":"The message.","required":false,"schema":{"$ref":"#/definitions/ServerMessage"}}],"responses":{"204":{"description":"successful operation"},"400":{"description":"Bad Request"},"404":{"description":"user was not in channel."}}}}},"definitions":{"Application":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"},"userCount":{"format":"int32","description":"Gets or Sets UserCount","type":"integer"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"ApplicationCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"}}},"ChannelCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userCount":{"format":"int32","description":"Gets or Sets UserCount","type":"integer"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"ChannelConfig":{"type":"object","properties":{"recording":{"description":"True if to enable recording, false if to disable.","type":"boolean"}}},"Channel":{"type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userCount":{"format":"int32","description":"Gets or Sets UserCount","type":"integer"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"ClientChannelCollectionItem":{"type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"}}},"ServerMessage":{"type":"object","properties":{"message":{"type":"string"},"clientTag":{"description":"The client tag to use for the sender.","type":"string"},"clientRoles":{"description":"The client roles to use for the sender.","uniqueItems":false,"type":"array","items":{"type":"string"}},"deviceId":{"description":"The device ID to use for the sender.","type":"string"},"deviceAlias":{"description":"The device alias to use for the sender.","type":"string"},"userId":{"description":"The user ID to use for the sender.","type":"string"},"userAlias":{"description":"The user alias to use for the sender.","type":"string"}}},"ChannelClientCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"deviceId":{"description":"Gets or Sets DeviceId","type":"string"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"ClientConfig":{"description":"Client configuration.","type":"object","properties":{"userAlias":{"description":"Gets or sets the User Alias.","type":"string"},"deviceAlias":{"description":"Gets or sets the Device Alias.","type":"string"},"tag":{"description":"Gets or sets the Tag.","type":"string"},"roles":{"description":"Gets or sets the Roles.","uniqueItems":false,"type":"array","items":{"type":"string"}}}},"Client":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"tag":{"description":"Gets or Sets Tag","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"userAlias":{"description":"Gets or Sets UserAlias","type":"string"},"deviceId":{"description":"Gets or Sets DeviceId","type":"string"},"deviceAlias":{"description":"Gets or Sets DeviceAlias","type":"string"},"roles":{"description":"Gets or Sets Roles","uniqueItems":false,"type":"array","items":{"type":"string"}},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}},"ChannelClientSettings":{"type":"object","properties":{"claim":{"$ref":"#/definitions/ChannelClaim","description":"Gets or sets the channel claim."},"recording":{"description":"Gets or sets whether to enable recording.","type":"boolean"}}},"ChannelClaim":{"description":"A channel claim.","type":"object","properties":{"id":{"description":"Gets or sets the channel identifier.","type":"string"},"broadcast":{"description":"Gets or sets if this is a broadcast channel or not.","type":"boolean"},"disableSendMessage":{"description":"Gets or sets whether the user is NOT authorized to send messages.","type":"boolean"},"disablePeer":{"description":"Gets or sets whether the user is NOT authorized to create peer connections.","type":"boolean"},"disableSfu":{"description":"Gets or sets whether the user is NOT authorized to create SFU connections.","type":"boolean"},"disableMcu":{"description":"Gets or sets whether the user is NOT authorized to create MCU connections.","type":"boolean"},"disableSendAudio":{"description":"Gets or sets whether the user is NOT authorized to send audio.","type":"boolean"},"disableSendVideo":{"description":"Gets or sets whether the user is NOT authorized to send video.","type":"boolean"},"disableSendData":{"description":"Gets or sets whether the user is NOT authorized to send data.","type":"boolean"},"disableRemoteClientEvents":{"description":"Gets or sets whether to disable the NotifyJoin, NotifyLeave, and NotifyUpdate messages and events.","type":"boolean"},"audioReceiveWhitelist":{"description":"Gets or sets a whitelist of roles whose member's audio can be received from. Null disables the whitelist whereas an empty list\r\ndisables all receiving.","uniqueItems":false,"type":"array","items":{"type":"string"}},"videoReceiveWhitelist":{"description":"Gets or sets a whitelist of roles whose member's video can be received from. Null disables the whitelist whereas an empty list\r\ndisables all receiving.","uniqueItems":false,"type":"array","items":{"type":"string"}},"dataReceiveWhitelist":{"description":"Gets or sets a whitelist of roles whose member's data can be received from. Null disables the whitelist whereas an empty list\r\ndisables all receiving.","uniqueItems":false,"type":"array","items":{"type":"string"}},"action":{"description":"Gets or sets the action of this channel claim. Possible values are in the FM.LiveSwitch.ClaimAction class.","type":"string"},"canUpdate":{"description":"Gets or sets whether the user is authorized to update a media server channel.","type":"boolean"},"canKick":{"description":"Gets or sets whether the user is authorized kick other users from this channel.","type":"boolean"}}},"ChannelClient":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"deviceId":{"description":"Gets or Sets DeviceId","type":"string"},"roles":{"description":"Gets or Sets Roles","uniqueItems":false,"type":"array","items":{"type":"string"}},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"ClientCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"deviceId":{"description":"Gets or Sets DeviceId","type":"string"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}},"ChannelConnectionCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"deviceId":{"description":"Gets or Sets DeviceId","type":"string"},"clientId":{"description":"Gets or Sets ClientId","type":"string"}}},"ConnectionInfo":{"description":"Connection information.","type":"object","properties":{"applicationId":{"description":"Gets or sets the application identifier.","type":"string"},"channelId":{"description":"Gets or sets the channel identifier.","type":"string"},"userId":{"description":"Gets or sets the user identifier.","type":"string"},"userAlias":{"description":"Gets or sets the user alias.","type":"string"},"deviceId":{"description":"Gets or sets the device identifier.","type":"string"},"deviceAlias":{"description":"Gets or sets the device alias.","type":"string"},"clientId":{"description":"Gets or sets the client identifier.","type":"string"},"clientTag":{"description":"Gets or sets the client tag.","type":"string"},"clientRoles":{"description":"Gets or sets the client roles.","uniqueItems":false,"type":"array","items":{"type":"string"}},"externalId":{"description":"Gets or sets the connection external identifier.","type":"string"},"state":{"description":"Gets or sets the connection state.","type":"string"},"tag":{"description":"Gets or sets the connection tag.","type":"string"},"type":{"description":"Gets or sets the connection type.","type":"string"},"recording":{"description":"Gets or sets whether the connection is recording.","type":"boolean"},"error":{"$ref":"#/definitions/Error","description":"Gets or sets the connection error, if an error exists."},"mediaId":{"description":"Gets or sets the media identifier, for MCU or SFU upstream connections.","type":"string"},"remoteConnectionId":{"description":"Gets or sets the remote connection identifier, for peer or SFU downstream connections.","type":"string"},"remoteMediaId":{"description":"Gets or sets the remote media identifier, for SFU downstream connections.","type":"string"},"audioStreams":{"description":"Gets or sets the connection audio streams.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaStreamInfo"}},"videoStreams":{"description":"Gets or sets the connection video streams.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaStreamInfo"}},"dataStream":{"$ref":"#/definitions/DataStreamInfo","description":"Gets or sets the connection data stream."},"transports":{"description":"Gets or sets the connection transport information.\r\nThis will be {null} if BUNDLE is inactive.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransportInfo"}},"localAudioMuted":{"description":"Gets or sets if the local audio is muted.\r\nObsolete. Use AudioStream.Muted instead.","type":"boolean"},"localVideoMuted":{"description":"Gets or sets if the local video is muted.\r\nObsolete. Use VideoStream.Muted instead.","type":"boolean"},"audioDirection":{"description":"Gets or sets the audio stream direction.\r\nObsolete. Use AudioStream.Direction instead.","type":"string"},"videoDirection":{"description":"Gets or sets the video stream direction.\r\nObsolete. Use VideoStream.Direction instead.","type":"string"},"dataDirection":{"description":"Gets or sets the data stream direction.\r\nObsolete.","type":"string"},"audioFormats":{"description":"Gets the audio formats, if applicable.\r\nObsolete. Use AudioStream.Formats instead.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/FormatInfo"}},"videoFormats":{"description":"Gets the video formats, if applicable.\r\nObsolete. Use VideoStream.Formats instead.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/FormatInfo"}},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"Error":{"description":"An error.","type":"object","properties":{"code":{"format":"int32","description":"Gets or sets the code.","type":"integer"},"message":{"description":"Gets or sets the message.","type":"string"}}},"MediaStreamInfo":{"description":"Media stream information.","type":"object","properties":{"sendMuted":{"description":"Gets or sets whether the media stream has muted sending.","type":"boolean"},"sendDisabled":{"description":"Gets or sets whether the media stream has the send direction disabled.","type":"boolean"},"receiveDisabled":{"description":"Gets or sets whether the media stream has the receive direction disabled.","type":"boolean"},"sendFormats":{"description":"Gets or sets the media stream send formats.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/FormatInfo"}},"receiveFormats":{"description":"Gets or sets the media stream receive formats.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/FormatInfo"}},"sendEncodings":{"description":"Gets or sets the media stream send encodings.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/EncodingInfo"}},"receiveEncodings":{"description":"Gets or sets the media stream receive encodings.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/EncodingInfo"}},"localBandwidth":{"format":"int32","description":"Gets or sets the media stream's local bandwidth.","default":-1,"type":"integer"},"remoteBandwidth":{"format":"int32","description":"Gets or sets the media stream's remote bandwidth.","default":-1,"type":"integer"},"maxFrameWidth":{"format":"int32","description":"Gets or sets the media stream's maximum frame width.","type":"integer"},"maxFrameHeight":{"format":"int32","description":"Gets or sets the media stream's maximum frame height.","type":"integer"},"senders":{"description":"Gets or sets the media stream senders information.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaSenderInfo"}},"receivers":{"description":"Gets or sets the media stream receivers information.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/MediaReceiverInfo"}},"controlTransportId":{"description":"Gets or sets the control transport id.\r\nThis will be {null} if BUNDLE is active.","type":"string"},"tag":{"description":"Gets or sets the tag.","type":"string"},"transportId":{"description":"Gets or sets the transport id.","type":"string"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"DataStreamInfo":{"description":"Data stream information.","type":"object","properties":{"channels":{"description":"Gets or sets the data stream channels.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DataChannelInfo"}},"report":{"$ref":"#/definitions/DataStreamReport","description":"Gets or sets the data stream report."},"tag":{"description":"Gets or sets the tag.","type":"string"},"transportId":{"description":"Gets or sets the transport id.","type":"string"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"TransportInfo":{"description":"Transport Information.","type":"object","properties":{"localCertificate":{"$ref":"#/definitions/CertificateInfo","description":"Gets or sets the local certificate."},"remoteCertificate":{"$ref":"#/definitions/CertificateInfo","description":"Gets or sets the remote certificate."},"localCandidates":{"description":"Gets or sets the local candidates.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CandidateInfo"}},"remoteCandidates":{"description":"Gets or sets the remote candidates.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CandidateInfo"}},"candidatePairs":{"description":"Gets or sets the candidate pairs.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CandidatePairInfo"}},"activeCandidatePairId":{"description":"Gets or sets the active candidate pair identifier.","type":"string"},"report":{"$ref":"#/definitions/TransportReport","description":"Gets or sets the transport report."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"FormatInfo":{"description":"Format information.","type":"object","properties":{"name":{"description":"Gets or sets the name.","type":"string"},"clockRate":{"format":"int32","description":"Gets or sets the clock rate.","type":"integer"},"channelCount":{"format":"int32","description":"Gets or sets the channel count if available. Unused for video codecs.","type":"integer"}}},"EncodingInfo":{"description":"Encoding information.","type":"object","properties":{"rtpStreamId":{"description":"Gets or sets the RTP stream identifier.","type":"string"},"synchronizationSource":{"format":"int64","description":"Gets or sets the synchronization source.","default":-1,"type":"integer"},"deactivated":{"description":"Gets or sets whether this encoding is deactivated.","type":"boolean"},"bitrate":{"format":"int32","description":"Gets or sets the bitrate, in kbps.","default":-1,"type":"integer"},"frameRate":{"format":"double","description":"Gets or sets the frame-rate, in fps.","default":-1.0,"type":"number"},"size":{"$ref":"#/definitions/Size","description":"Gets or sets the size."},"scale":{"format":"double","description":"Gets or sets the target scale.","default":-1.0,"type":"number"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"MediaSenderInfo":{"description":"Media sender information.","type":"object","properties":{"source":{"$ref":"#/definitions/MediaSourceInfo","description":"Gets or sets source."},"report":{"$ref":"#/definitions/MediaSenderReport","description":"Gets or sets report."},"track":{"$ref":"#/definitions/MediaTrackInfo","description":"Gets or sets track."},"codec":{"$ref":"#/definitions/CodecInfo","description":"Gets or sets codec."},"synchronizationSource":{"format":"int64","description":"Gets or sets synchronization source of media track.","type":"integer"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"MediaReceiverInfo":{"description":"Media receiver information.","type":"object","properties":{"sink":{"$ref":"#/definitions/MediaSinkInfo","description":"Gets or sets sink."},"report":{"$ref":"#/definitions/MediaReceiverReport","description":"Gets or sets report."},"track":{"$ref":"#/definitions/MediaTrackInfo","description":"Gets or sets track."},"codec":{"$ref":"#/definitions/CodecInfo","description":"Gets or sets codec."},"synchronizationSource":{"format":"int64","description":"Gets or sets synchronization source of media track.","type":"integer"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"DataChannelInfo":{"description":"Data channel information.","type":"object","properties":{"label":{"description":"Gets or sets the data channel label.","type":"string"},"ordered":{"description":"Gets or sets whether the data channel is ordered.","type":"boolean"},"subprotocol":{"description":"Gets or sets the data channel subprotocol.","type":"string"},"state":{"description":"Gets or sets the data channel state.","type":"string"},"report":{"$ref":"#/definitions/DataChannelReport","description":"Gets or sets the data channel report."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"DataStreamReport":{"description":"Data stream report.","type":"object","properties":{"messagesSent":{"format":"int64","description":"Gets or sets the number of messages sent on this data stream.","type":"integer"},"bytesSent":{"format":"int64","description":"Gets or sets the number of bytes sent on this data stream.","type":"integer"},"messagesReceived":{"format":"int64","description":"Gets or sets the number of messages received on this data stream.","type":"integer"},"bytesReceived":{"format":"int64","description":"Gets or sets the number of bytes received on this data stream.","type":"integer"}}},"CertificateInfo":{"description":"Certificate information.","type":"object","properties":{"fingerprint":{"description":"Gets or sets the certificate fingerprint.","type":"string"},"fingerprintAlgorithm":{"description":"Gets or sets the certificate fingerprint algorithm.","type":"string"},"base64":{"description":"Gets or sets the certificate in Base64 format.","type":"string"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"CandidateInfo":{"description":"Candidate information.","type":"object","properties":{"ipAddress":{"description":"Gets or sets the candidate IP address.","type":"string"},"port":{"format":"int32","description":"Gets or sets the candidate port.","type":"integer"},"relatedIPAddress":{"description":"Gets or sets the candidate related IP address.","type":"string"},"relatedPort":{"format":"int32","description":"Gets or sets the candidate related port.","type":"integer"},"protocol":{"description":"Gets or sets the candidate protocol.","type":"string"},"relayProtocol":{"description":"Gets or sets the candidate relay protocol.","type":"string"},"type":{"description":"Gets or sets the candidate type.","type":"string"},"priority":{"format":"int64","description":"Gets or sets the candidate priority.","type":"integer"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"CandidatePairInfo":{"description":"Candidate pair information.","type":"object","properties":{"localCandidateId":{"description":"Gets or sets the candidate pair's local candidate identifier.","type":"string"},"remoteCandidateId":{"description":"Gets or sets the candidate pair's remote candidate identifier.","type":"string"},"state":{"description":"Gets or sets the candidate pair state.","type":"string"},"priority":{"format":"int64","description":"Gets or sets the candidate pair priority.","type":"integer"},"nominated":{"description":"Gets or sets whether the candidate pair is nominated.","type":"boolean"},"Report":{"$ref":"#/definitions/CandidatePairReport","description":"Gets or sets whether the candidate pair report."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"TransportReport":{"description":"Transport report.","type":"object","properties":{"bytesSent":{"format":"int64","description":"Gets or sets the number of bytes sent on this transport.","type":"integer"},"bytesReceived":{"format":"int64","description":"Gets or sets the number of bytes received on this transport.","type":"integer"}}},"Size":{"description":"A size (width and height).","type":"object","properties":{"width":{"format":"int32","description":"Gets or sets the width.","type":"integer"},"height":{"format":"int32","description":"Gets or sets the height.","type":"integer"}}},"MediaSourceInfo":{"description":"Media source information.","type":"object","properties":{"tag":{"description":"Gets or sets the media source tag.","type":"string"},"label":{"description":"Gets or sets the media source label.","type":"string"},"muted":{"description":"Gets or sets the whether the media source is muted.","type":"boolean"},"inputId":{"description":"Gets or sets the media source input identifier.","type":"string"},"inputName":{"description":"Gets or sets the media source input name.","type":"string"},"outputFormat":{"$ref":"#/definitions/FormatInfo","description":"Gets or sets the media source output format."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"MediaSenderReport":{"description":"Media sender report.","type":"object","properties":{"bytesSent":{"format":"int64","description":"Gets or sets the number of bytes sent.","type":"integer"},"packetsSent":{"format":"int64","description":"Gets or sets the number of packets sent.","type":"integer"},"roundTripTime":{"format":"int32","description":"Gets or sets the round-trip-time in milliseconds.","type":"integer"},"nackCount":{"format":"int64","description":"Gets or sets the number of negative-acknowledgement (NACK) messages sent.","type":"integer"},"pliCount":{"format":"int64","description":"Gets or sets the number of picture loss indication (PLI) messages sent.","type":"integer"},"firCount":{"format":"int64","description":"Gets or sets the number of full intra refresh (FIR) messages sent.","type":"integer"},"lrrCount":{"format":"int64","description":"Gets or sets the number of layer refresh request (LRR) messages sent.","type":"integer"},"sliCount":{"format":"int64","description":"Gets or sets the number of slice loss indication (SLI) messages sent.","type":"integer"}}},"MediaTrackInfo":{"description":"Media track information","type":"object","properties":{"stopped":{"description":"Gets or sets the whether the media track is stopped.","type":"boolean"},"detached":{"description":"Gets or sets the whether the media track is detached.","type":"boolean"},"muted":{"description":"Gets or sets the whether the media track is muted.","type":"boolean"},"report":{"$ref":"#/definitions/MediaTrackReport","description":"Gets or sets the data stream report."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"CodecInfo":{"description":"Codec information.","type":"object","properties":{"name":{"description":"Gets or sets the codec name.","type":"string"},"clockRate":{"format":"int32","description":"Gets or sets the codec clock rate.","type":"integer"},"channelCount":{"format":"int32","description":"Gets or sets the codec channel count.","type":"integer"},"parameters":{"description":"Gets or sets the codec parameters.","type":"string"},"payloadType":{"format":"int32","description":"Gets or sets the codec payload type.","type":"integer"},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"MediaSinkInfo":{"description":"Media sink information.","type":"object","properties":{"tag":{"description":"Gets or sets the media sink tag.","type":"string"},"label":{"description":"Gets or sets the media sink label.","type":"string"},"outputId":{"description":"Gets or sets the media sink output id.","type":"string"},"outputName":{"description":"Gets or sets the media sink output name.","type":"string"},"inputFormat":{"$ref":"#/definitions/FormatInfo","description":"Gets or sets the media sink input format."},"id":{"description":"Gets or sets the identifier.","type":"string"}}},"MediaReceiverReport":{"description":"Media receiver report.","type":"object","properties":{"bytesReceived":{"format":"int64","description":"Gets or sets the number of bytes received.","type":"integer"},"packetsReceived":{"format":"int64","description":"Gets or sets the number of packets received.","type":"integer"},"packetsDiscarded":{"format":"int64","description":"Gets or sets the number of packets discarded.","type":"integer"},"packetsDuplicated":{"format":"int64","description":"Gets or sets the number of packets duplicated.","type":"integer"},"packetsRepaired":{"format":"int64","description":"Gets or sets the number of packets repaired.","type":"integer"},"packetsLost":{"format":"int64","description":"Gets or sets the number of packets lost.","type":"integer"},"jitter":{"format":"int64","description":"Gets or sets the jitter in milliseconds.","type":"integer"},"nackCount":{"format":"int64","description":"Gets or sets the number of negative-acknowledgement (NACK) messages sent.","type":"integer"},"pliCount":{"format":"int64","description":"Gets or sets the number of picture loss indication (PLI) messages sent.","type":"integer"},"firCount":{"format":"int64","description":"Gets or sets the number of full intra refresh (FIR) messages sent.","type":"integer"},"lrrCount":{"format":"int64","description":"Gets or sets the number of layer refresh request (LRR) messages sent.","type":"integer"},"sliCount":{"format":"int64","description":"Gets or sets the number of slice loss indication (SLI) messages sent.","type":"integer"}}},"DataChannelReport":{"description":"Data channel report.","type":"object","properties":{"messagesSent":{"format":"int64","description":"Gets or sets the number of messages sent on this data channel.","type":"integer"},"bytesSent":{"format":"int64","description":"Gets or sets the number of bytes sent on this data channel.","type":"integer"},"messagesReceived":{"format":"int64","description":"Gets or sets the number of messages received on this data channel.","type":"integer"},"bytesReceived":{"format":"int64","description":"Gets or sets the number of bytes received on this data channel.","type":"integer"}}},"CandidatePairReport":{"description":"Candidate pair report.","type":"object","properties":{"bytesSent":{"format":"int64","description":"Gets or sets the number of candidate pair bytes sent.","type":"integer"},"bytesReceived":{"format":"int64","description":"Gets or sets the number of candidate pair bytes received.","type":"integer"},"requestsSent":{"format":"int64","description":"Gets or sets the number of candidate pair requests sent.","type":"integer"},"requestsReceived":{"format":"int64","description":"Gets or sets the number of candidate pair requests received.","type":"integer"},"responsesSent":{"format":"int64","description":"Gets or sets the number of candidate pair responses sent.","type":"integer"},"responsesReceived":{"format":"int64","description":"Gets or sets the number of candidate pair responses received.","type":"integer"},"consentRequestsSent":{"format":"int64","description":"Gets or sets the number of candidate pair consent requests sent.","type":"integer"},"consentRequestsReceived":{"format":"int64","description":"Gets or sets the number of candidate pair consent requests received.","type":"integer"},"consentResponsesSent":{"format":"int64","description":"Gets or sets the number of candidate pair consent responses sent.","type":"integer"},"consentResponsesReceived":{"format":"int64","description":"Gets or sets the number of candidate pair consent responses received.","type":"integer"},"totalRoundTripTime":{"format":"int32","description":"Gets or sets the candidate pair total round trip time in milliseconds.","type":"integer"},"currentRoundTripTime":{"format":"int32","description":"Gets or sets the candidate pair current round trip time in milliseconds.","type":"integer"}}},"MediaTrackReport":{"description":"Media track report.","type":"object","properties":{"maxBitrate":{"format":"int32","description":"Gets or sets the maximum bitrate.","type":"integer"},"minBitrate":{"format":"int32","description":"Gets or sets the minimum bitrate.","type":"integer"},"bitrate":{"format":"int32","description":"Gets or sets the bitrate.","type":"integer"},"frameWidth":{"format":"int32","description":"Gets or sets the frame width.","type":"integer"},"frameHeight":{"format":"int32","description":"Gets or sets the frame height.","type":"integer"},"frameRate":{"format":"int32","description":"Gets or sets the frame rate.","type":"integer"},"framesSent":{"format":"int64","description":"Gets or sets the number of frames sent.","type":"integer"},"framesReceived":{"format":"int64","description":"Gets or sets the number of frames received.","type":"integer"},"framesDropped":{"format":"int64","description":"Gets or sets the number of frames dropped.","type":"integer"},"framesCorrupted":{"format":"int64","description":"Gets or sets the number of frames corrupted.","type":"integer"},"framesDecoded":{"format":"int64","description":"Gets or sets the number of frames decoded.","type":"integer"},"framesEncoded":{"format":"int64","description":"Gets or sets the number of frames encoded.","type":"integer"}}},"Connector":{"type":"object","properties":{"id":{"format":"uuid","type":"string","readOnly":true},"registeredProtocols":{"uniqueItems":false,"type":"array","items":{"type":"string"},"readOnly":true}}},"ChannelDeviceCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"DeviceConfig":{"type":"object","properties":{"recording":{"description":"True if to enable recording, false if to disable.","type":"boolean"}}},"ChannelDevice":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"alias":{"description":"Gets or Sets Alias","type":"string"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"Device":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"alias":{"description":"Gets or Sets Alias","type":"string"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}},"DeviceCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"userId":{"description":"Gets or Sets UserId","type":"string"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}},"MediaServerReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"active":{"description":"Gets or Sets Active","type":"boolean"},"applications":{"description":"Gets or Sets Applications","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ApplicationReport"}},"computer":{"$ref":"#/definitions/Computer","description":"Gets or Sets Computer"}}},"ApplicationReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"channels":{"description":"Gets or Sets Channels","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ChannelReport"}}}},"Computer":{"description":"","type":"object","properties":{"cpuUsage":{"format":"double","description":"Gets or Sets CpuUsage","type":"number"},"memoryUsage":{"format":"int32","description":"Memory usage in KB.","type":"integer"}}},"ChannelReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"users":{"description":"Gets or Sets Users","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/UserReport"}}}},"UserReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"devices":{"description":"Gets or Sets Devices","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DeviceReport"}}}},"DeviceReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"clients":{"description":"Gets or Sets Clients","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ClientReport"}}}},"ClientReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"connections":{"description":"Gets or Sets Connections","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ConnectionReport"}}}},"ConnectionReport":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"type":{"description":"Gets or Sets Type","type":"string"}}},"MediaServerUpdate":{"description":"","type":"object","properties":{"active":{"description":"True to enable the media server; false to disable.","type":"boolean"}}},"MediaServer":{"description":"The model holding data for a media server.","type":"object","properties":{"id":{"format":"uuid","description":"The media server id.","type":"string"},"available":{"description":"True if the media server is available for mapping.","type":"boolean","readOnly":true},"active":{"description":"True if the media server hasn't been manually deactivated.","type":"boolean"},"coreCount":{"format":"int32","description":"The media server core count.","type":"integer"},"overCapacity":{"description":"True if the media server reached its capacity thresholds.","type":"boolean"},"overCapacityReason":{"description":"The reason why a media server was over capacity.","type":"string"},"draining":{"description":"True if the media server is draining it's connections.","type":"boolean"},"lastStateChange":{"format":"date-time","description":"The time that state was last changed.","type":"string"},"ipAddresses":{"description":"The list of ip addresses associated with a media server.","uniqueItems":false,"type":"array","items":{"type":"string"}},"region":{"description":"The region for this media server.","type":"string"},"deploymentId":{"format":"uuid","description":"The deployment id for this media server.","type":"string"},"currentThresholds":{"$ref":"#/definitions/AvailabilityThresholdsConfig","description":"The thresholds that were last applied to this media server."}}},"AvailabilityThresholdsConfig":{"type":"object","properties":{"safeMcuConnectionsPerCpuThreshold":{"format":"int32","description":"Gets or sets the safe number of MCU connections per CPU threshold to determine if server is over capacity.\r\nEXPERIMENTAL. Subject to change.","type":"integer"},"unsafeMcuConnectionsPerCpuThreshold":{"format":"int32","description":"Gets or sets the the critical (unsafe) number of MCU connections per CPU threshold to determine if server is over capacity.\r\nMedia Server will never be allocated more than this many connecions.\r\nEXPERIMENTAL. Subject to change.","type":"integer"},"safeSfuConnectionsPerCpuThreshold":{"format":"int32","description":"Gets or sets the number of SFU connections per CPU threshold to determine if server is over capacity.\r\nEXPERIMENTAL. Subject to change.","type":"integer"},"unsafeSfuConnectionsPerCpuThreshold":{"format":"int32","description":"Gets or sets the number of SFU connections per CPU threshold to determine if server is over capacity.\r\nMedia Server will never be allocated more than this many connecions.\r\nEXPERIMENTAL. Subject to change.","type":"integer"},"enabled":{"description":"True if thresholds should apply to this media server.","type":"boolean"},"cpuThreshold":{"format":"int32","description":"The CPU percentage used to determine if a media server is overcapacity.","type":"integer"},"memoryThreshold":{"format":"int64","description":"The memory usage (in bytes) used to determine if a media server is over capacity.","type":"integer"},"bandwidthThreshold":{"format":"int32","description":"The bandwidth thoughput (in bytes) used to determine if a media server is over capacity.","type":"integer"},"overCapacityDelay":{"format":"int32","description":"The minimum amount of time to wait (in seconds) before removing the overcapacity state.","type":"integer"},"failedConnectionThreshold":{"format":"int32","description":"The nuber of failed connections (within a time window) it takes to determine a media server is over capacity.","type":"integer"},"failedConnectionsExpiry":{"format":"int32","description":"The time window (in seconds) used for FM.LiveSwitch.Models.AvailabilityThresholdsConfig.FailedConnectionThreshold.","type":"integer"}}},"MediaServerStats":{"type":"object","properties":{"mediaServerId":{"format":"uuid","description":"The id of the media server these stats belong to.","type":"string"},"pendingConnections":{"format":"int32","description":"The total number of pending connections on a media server.","type":"integer"},"activeConnections":{"format":"int32","description":"The total amount of active connections on a media server.","type":"integer"},"totalClosedConnections":{"format":"int32","description":"The total amount of connections that were closed on a media server.","type":"integer"},"totalFailedConnections":{"format":"int32","description":"The total number of failed connections on a media server.","type":"integer"},"durationFailedConnections":{"format":"int32","description":"The number of failed connections within a specific duration.","type":"integer"},"durationSeconds":{"format":"int32","description":"How long the duration is for DurationFailedConnections in seconds.","type":"integer"}}},"ChannelUserCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"UserConfig":{"type":"object","properties":{"recording":{"description":"True if to enable recording, false if to disable.","type":"boolean"}}},"ChannelUser":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"alias":{"description":"Gets or Sets Alias","type":"string"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"connectionCount":{"format":"int32","description":"Gets or Sets ConnectionCount","type":"integer"}}},"UserCollectionItem":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}},"User":{"description":"","type":"object","properties":{"id":{"description":"Gets or Sets Id","type":"string"},"alias":{"description":"Gets or Sets Alias","type":"string"},"deviceCount":{"format":"int32","description":"Gets or Sets DeviceCount","type":"integer"},"clientCount":{"format":"int32","description":"Gets or Sets ClientCount","type":"integer"},"channelCount":{"format":"int32","description":"Gets or Sets ChannelCount","type":"integer"}}}},"securityDefinitions":{"ApiKey":{"name":"X-API-Key","in":"header","type":"apiKey","description":"Api Key"},"oauth2":{"flow":"password","tokenUrl":"../connect/token","type":"oauth2"}},"security":[{"ApiKey":[],"oauth2":[]}]}