{ "swagger": "2.0", "info": { "title": "Xibo API", "description": "Xibo CMS API", "termsOfService": "http://xibo.org.uk/legal", "contact": { "email": "info@xibo.org.uk" }, "license": { "name": "AGPLv3 or later", "url": "http://www.gnu.org/licenses/" }, "version": "1.8.0" }, "basePath": "/api", "schemes": [ "http" ], "produces": [ "application/json" ], "paths": { "/campaign": { "get": { "tags": [ "campaign" ], "summary": "Search Campaigns", "description": "Search all Campaigns this user has access to", "operationId": "campaignSearch", "parameters": [ { "name": "campaignId", "in": "formData", "description": "Filter by Campaign Id", "required": false, "type": "integer" }, { "name": "name", "in": "formData", "description": "Filter by Name", "required": false, "type": "string" }, { "name": "tags", "in": "formData", "description": "Filter by Tags", "required": false, "type": "string" }, { "name": "hasLayouts", "in": "formData", "description": "Filter by has layouts", "required": false, "type": "integer" }, { "name": "isLayoutSpecific", "in": "formData", "description": "Filter by whether this Campaign is specific to a Layout or User added", "required": false, "type": "integer" }, { "name": "retired", "in": "formData", "description": "Filter by retired", "required": false, "type": "integer" }, { "name": "totalDuration", "in": "formData", "description": "Should we total the duration?", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Campaign" } } } } }, "post": { "tags": [ "campaign" ], "summary": "Add Campaign", "description": "Add a Campaign", "operationId": "campaignAdd", "parameters": [ { "name": "name", "in": "formData", "description": "Name for this Campaign", "required": true, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Campaign" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/campaign/{campaignId}": { "put": { "tags": [ "campaign" ], "summary": "Edit Campaign", "description": "Edit an existing Campaign", "operationId": "campaignEdit", "parameters": [ { "name": "campaignId", "in": "path", "description": "The Campaign ID to Edit", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Name for this Campaign", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Campaign" } } } }, "delete": { "tags": [ "campaign" ], "summary": "Delete Campaign", "description": "Delete an existing Campaign", "operationId": "campaignDelete", "parameters": [ { "name": "campaignId", "in": "path", "description": "The Campaign ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/campaign/layout/assign/{campaignId}": { "post": { "tags": [ "campaign" ], "summary": "Assign Layouts", "description": "Assign Layouts to a Campaign", "operationId": "campaignAssignLayout", "parameters": [ { "name": "campaignId", "in": "path", "description": "The Campaign ID", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "Array of Layout ID/Display Orders to Assign", "required": true, "type": "array", "items": { "$ref": "#/definitions/LayoutAssignmentArray" } }, { "name": "unassignLayoutId", "in": "formData", "description": "Array of Layout ID/Display Orders to unassign", "required": false, "type": "array", "items": { "$ref": "#/definitions/LayoutAssignmentArray" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/clock": { "get": { "tags": [ "misc" ], "summary": "The current CMS time", "description": "The Time", "operationId": "clock", "responses": { "200": { "description": "successful response", "schema": { "type": "object", "additionalProperties": { "title": "time", "type": "string" } } } } } }, "/command": { "get": { "tags": [ "command" ], "summary": "Command Search", "description": "Search this users Commands", "operationId": "commandSearch", "parameters": [ { "name": "commandId", "in": "formData", "description": "Filter by Command Id", "required": false, "type": "integer" }, { "name": "command", "in": "formData", "description": "Filter by Command Name", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "Filter by Command Code", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Command" } } } } }, "post": { "tags": [ "command" ], "summary": "Command Add", "description": "Add a Command", "operationId": "commandAdd", "parameters": [ { "name": "command", "in": "formData", "description": "The Command Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description for the command", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "A unique code for this command", "required": true, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Command" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/command/{commandId}": { "put": { "tags": [ "command" ], "summary": "Edit Command", "description": "Edit the provided command", "operationId": "commandEdit", "parameters": [ { "name": "commandId", "in": "path", "description": "The Command Id to Edit", "required": true, "type": "integer" }, { "name": "command", "in": "formData", "description": "The Command Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description for the command", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Command" } } } }, "delete": { "tags": [ "command" ], "summary": "Delete Command", "description": "Delete the provided command", "operationId": "commandDelete", "parameters": [ { "name": "commandId", "in": "path", "description": "The Command Id to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/dataset": { "get": { "tags": [ "dataset" ], "summary": "DataSet Search", "description": "Search this users DataSets", "operationId": "dataSetSearch", "parameters": [ { "name": "dataSetId", "in": "formData", "description": "Filter by DataSet Id", "required": false, "type": "integer" }, { "name": "dataSet", "in": "formData", "description": "Filter by DataSet Name", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "Filter by DataSet Code", "required": false, "type": "string" }, { "name": "embed", "in": "formData", "description": "Embed related data such as columns", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/DataSet" } } } } }, "post": { "tags": [ "dataset" ], "summary": "Add DataSet", "description": "Add a DataSet", "operationId": "dataSetAdd", "parameters": [ { "name": "dataSet", "in": "formData", "description": "The DataSet Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description of this DataSet", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "A code for this DataSet", "required": false, "type": "string" }, { "name": "isRemote", "in": "formData", "description": "Is this a remote DataSet?", "required": true, "type": "integer" }, { "name": "method", "in": "formData", "description": "The Request Method GET or POST", "required": false, "type": "string" }, { "name": "uri", "in": "formData", "description": "The URI, without query parameters", "required": false, "type": "string" }, { "name": "postData", "in": "formData", "description": "query parameter encoded data to add to the request", "required": false, "type": "string" }, { "name": "authentication", "in": "formData", "description": "HTTP Authentication method None|Basic|Digest", "required": false, "type": "string" }, { "name": "username", "in": "formData", "description": "HTTP Authentication User Name", "required": false, "type": "string" }, { "name": "password", "in": "formData", "description": "HTTP Authentication Password", "required": false, "type": "string" }, { "name": "refreshRate", "in": "formData", "description": "How often in seconds should this remote DataSet be refreshed", "required": false, "type": "integer" }, { "name": "clearRate", "in": "formData", "description": "How often in seconds should this remote DataSet be truncated", "required": false, "type": "integer" }, { "name": "runsAfter", "in": "formData", "description": "An optional dataSetId which should be run before this Remote DataSet", "required": false, "type": "integer" }, { "name": "dataRoot", "in": "formData", "description": "The root of the data in the Remote source which is used as the base for all remote columns", "required": false, "type": "string" }, { "name": "summarize", "in": "formData", "description": "Should the data be aggregated? None|Summarize|Count", "required": false, "type": "string" }, { "name": "summarizeField", "in": "formData", "description": "Which field should be used to summarize", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSet" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/dataset/{dataSetId}": { "put": { "tags": [ "dataset" ], "summary": "Edit DataSet", "description": "Edit a DataSet", "operationId": "dataSetEdit", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSet", "in": "formData", "description": "The DataSet Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description of this DataSet", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "A code for this DataSet", "required": false, "type": "string" }, { "name": "isRemote", "in": "formData", "description": "Is this a remote DataSet?", "required": true, "type": "integer" }, { "name": "method", "in": "formData", "description": "The Request Method GET or POST", "required": false, "type": "string" }, { "name": "uri", "in": "formData", "description": "The URI, without query parameters", "required": false, "type": "string" }, { "name": "postData", "in": "formData", "description": "query parameter encoded data to add to the request", "required": false, "type": "string" }, { "name": "authentication", "in": "formData", "description": "HTTP Authentication method None|Basic|Digest", "required": false, "type": "string" }, { "name": "username", "in": "formData", "description": "HTTP Authentication User Name", "required": false, "type": "string" }, { "name": "password", "in": "formData", "description": "HTTP Authentication Password", "required": false, "type": "string" }, { "name": "refreshRate", "in": "formData", "description": "How often in seconds should this remote DataSet be refreshed", "required": false, "type": "integer" }, { "name": "clearRate", "in": "formData", "description": "How often in seconds should this remote DataSet be truncated", "required": false, "type": "integer" }, { "name": "runsAfter", "in": "formData", "description": "An optional dataSetId which should be run before this Remote DataSet", "required": false, "type": "integer" }, { "name": "dataRoot", "in": "formData", "description": "The root of the data in the Remote source which is used as the base for all remote columns", "required": false, "type": "string" }, { "name": "summarize", "in": "formData", "description": "Should the data be aggregated? None|Summarize|Count", "required": false, "type": "string" }, { "name": "summarizeField", "in": "formData", "description": "Which field should be used to summarize", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSet" } } } }, "delete": { "tags": [ "dataset" ], "summary": "Delete DataSet", "description": "Delete a DataSet", "operationId": "dataSetDelete", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/dataset/copy/{dataSetId}": { "post": { "tags": [ "dataset" ], "summary": "Copy DataSet", "description": "Copy a DataSet", "operationId": "dataSetCopy", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSet", "in": "formData", "description": "The DataSet Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description of this DataSet", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "A code for this DataSet", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSet" } } } } }, "/dataset/import/{dataSetId}": { "post": { "tags": [ "dataset" ], "summary": "Import CSV", "description": "Import a CSV into a DataSet", "operationId": "dataSetImport", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID to import into.", "required": true, "type": "integer" }, { "name": "files", "in": "formData", "description": "The file", "required": true, "type": "file" }, { "name": "csvImport_{dataSetColumnId}", "in": "formData", "description": "You need to provide dataSetColumnId after csvImport_, to know your dataSet columns Ids, you will need to use the GET /dataset/{dataSetId}/column call first. The value of this parameter is the index of the column in your csv file, where the first column is 1", "required": true, "type": "integer" }, { "name": "overwrite", "in": "formData", "description": "flag (0,1) Set to 1 to erase all content in the dataSet and overwrite it with new content in this import", "required": false, "type": "integer" }, { "name": "ignorefirstrow", "in": "formData", "description": "flag (0,1), Set to 1 to Ignore first row, useful if the CSV file has headings", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } } }, "/dataset/importjson/{dataSetId}": { "post": { "tags": [ "dataset" ], "summary": "Import JSON", "description": "Import JSON into a DataSet", "operationId": "dataSetImportJson", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID to import into.", "required": true, "type": "integer" }, { "name": "data", "in": "body", "description": "The row data, field name vs field data format. e.g. { uniqueKeys: [col1], rows: [{col1: value1}]}", "required": true, "schema": "json", "type": "string" } ], "responses": { "200": { "description": "successful operation" } } } }, "/dataset/{dataSetId}/column": { "get": { "tags": [ "dataset" ], "summary": "Search Columns", "description": "Search Columns for DataSet", "operationId": "dataSetColumnSearch", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSetColumnId", "in": "formData", "description": "Filter by DataSet ColumnID", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/DataSetColumn" } } } } }, "post": { "tags": [ "dataset" ], "summary": "Add Column", "description": "Add a Column to a DataSet", "operationId": "dataSetColumnAdd", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "heading", "in": "formData", "description": "The heading for the Column", "required": true, "type": "string" }, { "name": "listContent", "in": "formData", "description": "A comma separated list of content for drop downs", "required": false, "type": "string" }, { "name": "columnOrder", "in": "formData", "description": "The display order for this column", "required": true, "type": "integer" }, { "name": "dataTypeId", "in": "formData", "description": "The data type ID for this column", "required": true, "type": "integer" }, { "name": "dataSetColumnTypeId", "in": "formData", "description": "The column type for this column", "required": true, "type": "integer" }, { "name": "formula", "in": "formData", "description": "MySQL SELECT syntax formula for this Column if the column type is formula", "required": false, "type": "string" }, { "name": "remoteField", "in": "formData", "description": "JSON-String to select Data from the Remote DataSet", "required": false, "type": "string" }, { "name": "showFilter", "in": "formData", "description": "Flag indicating whether this column should present a filter on DataEntry", "required": true, "type": "integer" }, { "name": "showSort", "in": "formData", "description": "Flag indicating whether this column should allow sorting on DataEntry", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSetColumn" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/dataset/{dataSetId}/column/{dataSetColumnId}": { "put": { "tags": [ "dataset" ], "summary": "Edit Column", "description": "Edit a Column to a DataSet", "operationId": "dataSetColumnEdit", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSetColumnId", "in": "path", "description": "The Column ID", "required": true, "type": "integer" }, { "name": "heading", "in": "formData", "description": "The heading for the Column", "required": true, "type": "string" }, { "name": "listContent", "in": "formData", "description": "A comma separated list of content for drop downs", "required": false, "type": "string" }, { "name": "columnOrder", "in": "formData", "description": "The display order for this column", "required": true, "type": "integer" }, { "name": "dataTypeId", "in": "formData", "description": "The data type ID for this column", "required": true, "type": "integer" }, { "name": "dataSetColumnTypeId", "in": "formData", "description": "The column type for this column", "required": true, "type": "integer" }, { "name": "formula", "in": "formData", "description": "MySQL SELECT syntax formula for this Column if the column type is formula", "required": false, "type": "string" }, { "name": "remoteField", "in": "formData", "description": "JSON-String to select Data from the Remote DataSet", "required": false, "type": "string" }, { "name": "showFilter", "in": "formData", "description": "Flag indicating whether this column should present a filter on DataEntry", "required": true, "type": "integer" }, { "name": "showSort", "in": "formData", "description": "Flag indicating whether this column should allow sorting on DataEntry", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSetColumn" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } }, "delete": { "tags": [ "dataset" ], "summary": "Delete Column", "description": "Delete DataSet Column", "operationId": "dataSetColumnDelete", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSetColumnId", "in": "path", "description": "The Column ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/dataset/data/{dataSetId}": { "get": { "tags": [ "dataset" ], "summary": "DataSet Data", "description": "Get Data for DataSet", "operationId": "dataSetData", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } }, "post": { "tags": [ "dataset" ], "summary": "Add Row", "description": "Add a row of Data to a DataSet", "operationId": "dataSetDataAdd", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "dataSetColumnId_ID", "in": "formData", "description": "Parameter for each dataSetColumnId in the DataSet", "required": true, "type": "string" } ], "responses": { "201": { "description": "successful operation", "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/dataset/data/{dataSetId}/{rowId}": { "put": { "tags": [ "dataset" ], "summary": "Edit Row", "description": "Edit a row of Data to a DataSet", "operationId": "dataSetDataEdit", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "rowId", "in": "path", "description": "The Row ID of the Data to Edit", "required": true, "type": "integer" }, { "name": "dataSetColumnId_ID", "in": "formData", "description": "Parameter for each dataSetColumnId in the DataSet", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful operation" } } }, "delete": { "tags": [ "dataset" ], "summary": "Delete Row", "description": "Delete a row of Data to a DataSet", "operationId": "dataSetDataDelete", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "rowId", "in": "path", "description": "The Row ID of the Data to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/dataset/{dataSetId}/rss": { "get": { "tags": [ "dataset" ], "summary": "Search RSSs", "description": "Search RSSs for DataSet", "operationId": "dataSetRSSSearch", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/DataSetFeed" } } } } }, "post": { "tags": [ "dataset" ], "summary": "Add RSS", "description": "Add a RSS to a DataSet", "operationId": "dataSetColumnAdd", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "title", "in": "formData", "description": "The title for the RSS", "required": true, "type": "string" }, { "name": "title", "in": "formData", "description": "The author for the RSS", "required": true, "type": "string" }, { "name": "summaryColumnId", "in": "formData", "description": "The columnId to be used as each item summary", "required": true, "type": "integer" }, { "name": "contentColumnId", "in": "formData", "description": "The columnId to be used as each item content", "required": true, "type": "integer" }, { "name": "publishedDateColumnId", "in": "formData", "description": "The columnId to be used as each item published date", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DataSetRss" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/dataset/{dataSetId}/rss/{$rssId}": { "put": { "tags": [ "dataset" ], "summary": "Edit Rss", "description": "Edit DataSet Rss Feed", "operationId": "dataSetRssEdit", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "rssId", "in": "path", "description": "The RSS ID", "required": true, "type": "integer" }, { "name": "title", "in": "formData", "description": "The title for the RSS", "required": true, "type": "string" }, { "name": "title", "in": "formData", "description": "The author for the RSS", "required": true, "type": "string" }, { "name": "summaryColumnId", "in": "formData", "description": "The rssId to be used as each item summary", "required": true, "type": "integer" }, { "name": "contentColumnId", "in": "formData", "description": "The columnId to be used as each item content", "required": true, "type": "integer" }, { "name": "publishedDateColumnId", "in": "formData", "description": "The columnId to be used as each item published date", "required": true, "type": "integer" }, { "name": "regeneratePsk", "in": "formData", "description": "Regenerate the PSK?", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/dataset/{dataSetId}/rss/{rssId}": { "delete": { "tags": [ "dataset" ], "summary": "Delete RSS", "description": "Delete DataSet RSS", "operationId": "dataSetRSSDelete", "parameters": [ { "name": "dataSetId", "in": "path", "description": "The DataSet ID", "required": true, "type": "integer" }, { "name": "rssId", "in": "path", "description": "The RSS ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/daypart": { "get": { "tags": [ "dayPart" ], "summary": "Daypart Search", "description": "Search dayparts", "operationId": "dayPartSearch", "parameters": [ { "name": "dayPartId", "in": "formData", "description": "The dayPart ID to Search", "required": false, "type": "integer" }, { "name": "name", "in": "formData", "description": "The name of the dayPart to Search", "required": false, "type": "string" }, { "name": "embed", "in": "formData", "description": "Embed related data such as exceptions", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/DayPart" } } } } }, "post": { "tags": [ "dayPart" ], "summary": "Daypart Add", "description": "Add a Daypart", "operationId": "dayPartAdd", "parameters": [ { "name": "name", "in": "formData", "description": "The Daypart Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description for the dayPart", "required": false, "type": "string" }, { "name": "startTime", "in": "formData", "description": "The start time for this day part", "required": true, "type": "string" }, { "name": "endTime", "in": "formData", "description": "The end time for this day part", "required": true, "type": "string" }, { "name": "exceptionDays", "in": "formData", "description": "String array of exception days", "required": false, "type": "array", "items": { "type": "string" } }, { "name": "exceptionStartTimes", "in": "formData", "description": "String array of exception start times to match the exception days", "required": false, "type": "array", "items": { "type": "string" } }, { "name": "exceptionEndTimes", "in": "formData", "description": "String array of exception end times to match the exception days", "required": false, "type": "array", "items": { "type": "string" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DayPart" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/daypart/{dayPartId}": { "put": { "tags": [ "dayPart" ], "summary": "Daypart Add", "description": "Add a Daypart", "operationId": "dayPartAdd", "parameters": [ { "name": "dayPartId", "in": "path", "description": "The Daypart Id", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The Daypart Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description for the dayPart", "required": false, "type": "string" }, { "name": "startTime", "in": "formData", "description": "The start time for this day part", "required": true, "type": "string" }, { "name": "endTime", "in": "formData", "description": "The end time for this day part", "required": true, "type": "string" }, { "name": "exceptionDays", "in": "formData", "description": "String array of exception days", "required": false, "type": "array", "items": { "type": "string" } }, { "name": "exceptionStartTimes", "in": "formData", "description": "String array of exception start times to match the exception days", "required": false, "type": "array", "items": { "type": "string" } }, { "name": "exceptionEndTimes", "in": "formData", "description": "String array of exception end times to match the exception days", "required": false, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DayPart" } } } }, "delete": { "tags": [ "dayPart" ], "summary": "Delete DayPart", "description": "Delete the provided dayPart", "operationId": "dayPartDelete", "parameters": [ { "name": "dayPartId", "in": "path", "description": "The Daypart Id to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/display": { "get": { "tags": [ "display" ], "summary": "Display Search", "description": "Search Displays for this User", "operationId": "displaySearch", "parameters": [ { "name": "displayId", "in": "formData", "description": "Filter by Display Id", "required": false, "type": "integer" }, { "name": "displayGroupId", "in": "formData", "description": "Filter by DisplayGroup Id", "required": false, "type": "integer" }, { "name": "display", "in": "formData", "description": "Filter by Display Name", "required": false, "type": "string" }, { "name": "macAddress", "in": "formData", "description": "Filter by Mac Address", "required": false, "type": "string" }, { "name": "hardwareKey", "in": "formData", "description": "Filter by Hardware Key", "required": false, "type": "string" }, { "name": "clientVersion", "in": "formData", "description": "Filter by Client Version", "required": false, "type": "string" }, { "name": "clientType", "in": "formData", "description": "Filter by Client Type", "required": false, "type": "string" }, { "name": "clientCode", "in": "formData", "description": "Filter by Client Code", "required": false, "type": "string" }, { "name": "embed", "in": "formData", "description": "Embed related data, namely displaygroups. A comma separated list of child objects to embed.", "required": false, "type": "string" }, { "name": "authorised", "in": "formData", "description": "Filter by authorised flag", "required": false, "type": "integer" }, { "name": "displayProfileId", "in": "formData", "description": "Filter by Display Profile", "required": false, "type": "integer" }, { "name": "mediaInventoryStatus", "in": "formData", "description": "Filter by Display Status ( 1 - up to date, 2 - downloading, 3 - Out of date)", "required": false, "type": "integer" }, { "name": "loggedIn", "in": "formData", "description": "Filter by Logged In flag", "required": false, "type": "integer" }, { "name": "lastAccessed", "in": "formData", "description": "Filter by Display Last Accessed date, expects date in Y-m-d H:i:s format", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Display" } } } } } }, "/display/{displayId}": { "put": { "tags": [ "display" ], "summary": "Display Edit", "description": "Edit a Display", "operationId": "displayEdit", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" }, { "name": "display", "in": "formData", "description": "The Display Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "A description of the Display", "required": false, "type": "string" }, { "name": "tags", "in": "formData", "description": "A comma separated list of tags for this item", "required": false, "type": "string" }, { "name": "auditingUntil", "in": "formData", "description": "A date this Display records auditing information until.", "required": false, "type": "string", "format": "date-time" }, { "name": "defaultLayoutId", "in": "formData", "description": "A Layout ID representing the Default Layout for this Display.", "required": true, "type": "integer" }, { "name": "licensed", "in": "formData", "description": "Flag indicating whether this display is licensed.", "required": true, "type": "integer" }, { "name": "license", "in": "formData", "description": "The hardwareKey to use as the licence key for this Display", "required": true, "type": "string" }, { "name": "incSchedule", "in": "formData", "description": "Flag indicating whether the Default Layout should be included in the Schedule", "required": true, "type": "integer" }, { "name": "emailAlert", "in": "formData", "description": "Flag indicating whether the Display generates up/down email alerts.", "required": true, "type": "integer" }, { "name": "alertTimeout", "in": "formData", "description": "How long in seconds should this display wait before alerting when it hasn't connected. Override for the collection interval.", "required": false, "type": "integer" }, { "name": "wakeOnLanEnabled", "in": "formData", "description": "Flag indicating if Wake On LAN is enabled for this Display", "required": true, "type": "integer" }, { "name": "wakeOnLanTime", "in": "formData", "description": "A h:i string representing the time that the Display should receive its Wake on LAN command", "required": false, "type": "string" }, { "name": "broadCastAddress", "in": "formData", "description": "The BroadCast Address for this Display - used by Wake On LAN", "required": false, "type": "string" }, { "name": "secureOn", "in": "formData", "description": "The secure on configuration for this Display", "required": false, "type": "string" }, { "name": "cidr", "in": "formData", "description": "The CIDR configuration for this Display", "required": false, "type": "integer" }, { "name": "latitude", "in": "formData", "description": "The Latitude of this Display", "required": false, "type": "number" }, { "name": "longitude", "in": "formData", "description": "The Longitude of this Display", "required": false, "type": "number" }, { "name": "timeZone", "in": "formData", "description": "The timezone for this display, or empty to use the CMS timezone", "required": false, "type": "string" }, { "name": "displayProfileId", "in": "formData", "description": "The Display Settings Profile ID", "required": false, "type": "integer" }, { "name": "clearCachedData", "in": "formData", "description": "Clear all Cached data for this display", "required": false, "type": "integer" }, { "name": "rekeyXmr", "in": "formData", "description": "Clear the cached XMR configuration and send a rekey", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Display" } } } }, "delete": { "tags": [ "display" ], "summary": "Display Delete", "description": "Delete a Display", "operationId": "displayDelete", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/display/requestscreenshot/{displayId}": { "put": { "tags": [ "display" ], "summary": "Request Screen Shot", "description": "Notify the display that the CMS would like a screen shot to be sent.", "operationId": "displayRequestScreenshot", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Display" } } } } }, "/display/wol/{displayId}": { "post": { "tags": [ "display" ], "summary": "Issue WOL", "description": "Send a Wake On LAN packet to this Display", "operationId": "displayWakeOnLan", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/display/authorise/{displayId}": { "put": { "tags": [ "display" ], "summary": "Toggle authorised", "description": "Toggle authorised for the Display.", "operationId": "displayToggleAuthorise", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/display/defaultlayout/{displayId}": { "put": { "tags": [ "display" ], "summary": "Set Default Layout", "description": "Set the default Layout on this Display", "operationId": "displayDefaultLayout", "parameters": [ { "name": "displayId", "in": "path", "description": "The Display ID", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "The Layout ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup": { "get": { "tags": [ "displayGroup" ], "summary": "Get Display Groups", "operationId": "displayGroupSearch", "parameters": [ { "name": "displayGroupId", "in": "formData", "description": "Filter by DisplayGroup Id", "required": false, "type": "integer" }, { "name": "displayGroup", "in": "formData", "description": "Filter by DisplayGroup Name", "required": false, "type": "string" }, { "name": "displayId", "in": "formData", "description": "Filter by DisplayGroups containing a specific display", "required": false, "type": "integer" }, { "name": "nestedDisplayId", "in": "formData", "description": "Filter by DisplayGroups containing a specific display in there nesting", "required": false, "type": "integer" }, { "name": "dynamicCriteria", "in": "formData", "description": "Filter by DisplayGroups containing a specific dynamic criteria", "required": false, "type": "string" }, { "name": "isDisplaySpecific", "in": "formData", "description": "Filter by whether the Display Group belongs to a Display or is user created", "required": false, "type": "integer" }, { "name": "forSchedule", "in": "formData", "description": "Should the list be refined for only those groups the User can Schedule against?", "required": false, "type": "integer" } ], "responses": { "200": { "description": "a successful response", "schema": { "type": "array", "items": { "$ref": "#/definitions/DisplayGroup" } }, "headers": { "X-Total-Count": { "description": "The total number of records", "type": "integer" } } } } }, "post": { "tags": [ "displayGroup" ], "summary": "Add a Display Group", "description": "Add a new Display Group to the CMS", "operationId": "displayGroupAdd", "parameters": [ { "name": "displayGroup", "in": "formData", "description": "The Display Group Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "The Display Group Description", "required": false, "type": "string" }, { "name": "tags", "in": "formData", "description": "A comma separated list of tags for this item", "required": false, "type": "string" }, { "name": "isDynamic", "in": "formData", "description": "Flag indicating whether this DisplayGroup is Dynamic", "required": true, "type": "integer" }, { "name": "dynamicCriteria", "in": "formData", "description": "The filter criteria for this dynamic group. A comma separated set of regular expressions to apply", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DisplayGroup" }, "headers": { "Location": { "description": "Location of the new DisplayGroup", "type": "string" } } } } } }, "/displaygroup/{displayGroupId}": { "put": { "tags": [ "displayGroup" ], "summary": "Edit a Display Group", "description": "Edit an existing Display Group identified by its Id", "operationId": "displayGroupEdit", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The displayGroupId to edit.", "required": true, "type": "integer" }, { "name": "displayGroup", "in": "formData", "description": "The Display Group Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "The Display Group Description", "required": false, "type": "string" }, { "name": "tags", "in": "formData", "description": "A comma separated list of tags for this item", "required": false, "type": "string" }, { "name": "isDynamic", "in": "formData", "description": "Flag indicating whether this DisplayGroup is Dynamic", "required": true, "type": "integer" }, { "name": "dynamicCriteria", "in": "formData", "description": "The filter criteria for this dynamic group. A command separated set of regular expressions to apply", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DisplayGroup" } } } }, "delete": { "tags": [ "displayGroup" ], "summary": "Delete a Display Group", "description": "Delete an existing Display Group identified by its Id", "operationId": "displayGroupDelete", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The displayGroupId to delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/display/assign": { "post": { "tags": [ "displayGroup" ], "summary": "Assign one or more Displays to a Display Group", "description": "Adds the provided Displays to the Display Group", "operationId": "displayGroupDisplayAssign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to assign to", "required": true, "type": "integer" }, { "name": "displayId", "in": "formData", "description": "The Display Ids to assign", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "unassignDisplayId", "in": "formData", "description": "An optional array of Display IDs to unassign", "required": false, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/display/unassign": { "post": { "tags": [ "displayGroup" ], "summary": "Unassigns one or more Displays to a Display Group", "description": "Removes the provided Displays from the Display Group", "operationId": "displayGroupDisplayUnassign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to unassign from", "required": true, "type": "integer" }, { "name": "displayId", "in": "formData", "description": "The Display Ids to unassign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/displayGroup/assign": { "post": { "tags": [ "displayGroup" ], "summary": "Assign one or more DisplayGroups to a Display Group", "description": "Adds the provided DisplayGroups to the Display Group", "operationId": "displayGroupDisplayGroupAssign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to assign to", "required": true, "type": "integer" }, { "name": "displayGroupId", "in": "formData", "description": "The displayGroup Ids to assign", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "unassignDisplayGroupId", "in": "formData", "description": "An optional array of displayGroup IDs to unassign", "required": false, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/displayGroup/unassign": { "post": { "tags": [ "displayGroup" ], "summary": "Unassigns one or more DisplayGroups to a Display Group", "description": "Removes the provided DisplayGroups from the Display Group", "operationId": "displayGroupDisplayGroupUnassign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to unassign from", "required": true, "type": "integer" }, { "name": "displayGroupId", "in": "formData", "description": "The DisplayGroup Ids to unassign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/media/assign": { "post": { "tags": [ "displayGroup" ], "summary": "Assign one or more Media items to a Display Group", "description": "Adds the provided Media to the Display Group", "operationId": "displayGroupMediaAssign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to assign to", "required": true, "type": "integer" }, { "name": "mediaId", "in": "formData", "description": "The Media Ids to assign", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "unassignMediaId", "in": "formData", "description": "Optional array of Media Id to unassign", "required": false, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/media/unassign": { "post": { "tags": [ "displayGroup" ], "summary": "Unassign one or more Media items from a Display Group", "description": "Removes the provided from the Display Group", "operationId": "displayGroupMediaUnassign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to unassign from", "required": true, "type": "integer" }, { "name": "mediaId", "in": "formData", "description": "The Media Ids to unassign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/layout/assign": { "post": { "tags": [ "displayGroup" ], "summary": "Assign one or more Layouts items to a Display Group", "description": "Adds the provided Layouts to the Display Group", "operationId": "displayGroupLayoutsAssign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to assign to", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "The Layouts Ids to assign", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "unassignLayoutId", "in": "formData", "description": "Optional array of Layouts Id to unassign", "required": false, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/layout/unassign": { "post": { "tags": [ "displayGroup" ], "summary": "Unassign one or more Layout items from a Display Group", "description": "Removes the provided from the Display Group", "operationId": "displayGroupLayoutUnassign", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group to unassign from", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "The Layout Ids to unassign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/collectNow": { "post": { "tags": [ "displayGroup" ], "summary": "Action: Collect Now", "description": "Send the collect now action to this DisplayGroup", "operationId": "displayGroupActionCollectNow", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The display group id", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/clearStatsAndLogs": { "post": { "tags": [ "displayGroup" ], "summary": "Action: Clear Stats and Logs", "description": "Clear all stats and logs on this Group", "operationId": "displayGroupActionClearStatsAndLogs", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The display group id", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/changeLayout": { "post": { "tags": [ "displayGroup" ], "summary": "Action: Change Layout", "description": "Send the change layout action to this DisplayGroup", "operationId": "displayGroupActionChangeLayout", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group Id", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "The Layout Id", "required": true, "type": "integer" }, { "name": "duration", "in": "formData", "description": "The duration in seconds for this Layout change to remain in effect", "required": false, "type": "integer" }, { "name": "downloadRequired", "in": "formData", "description": "Flag indicating whether the player should perform a collect before playing the Layout", "required": false, "type": "integer" }, { "name": "changeMode", "in": "formData", "description": "Whether to queue or replace with this action", "required": true, "type": "string" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/revertToSchedule": { "post": { "tags": [ "displayGroup" ], "summary": "Action: Revert to Schedule", "description": "Send the revert to schedule action to this DisplayGroup", "operationId": "displayGroupActionRevertToSchedule", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The display group id", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/overlayLayout": { "post": { "tags": [ "displayGroup" ], "summary": "Action: Overlay Layout", "description": "Send the overlay layout action to this DisplayGroup", "operationId": "displayGroupActionOverlayLayout", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The Display Group Id", "required": true, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "The Layout Id", "required": true, "type": "integer" }, { "name": "duration", "in": "formData", "description": "The duration in seconds for this Overlay to remain in effect", "required": false, "type": "integer" }, { "name": "downloadRequired", "in": "formData", "description": "Flag indicating whether the player should perform a collect before adding the Overlay", "required": false, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displaygroup/{displayGroupId}/action/command": { "post": { "tags": [ "displayGroup" ], "summary": "Send Command", "description": "Send a predefined command to this Group of Displays", "operationId": "displayGroupActionCommand", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The display group id", "required": true, "type": "integer" }, { "name": "commandId", "in": "formData", "description": "The Command Id", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displayprofile": { "get": { "tags": [ "displayprofile" ], "summary": "Display Profile Search", "description": "Search this users Display Profiles", "operationId": "displayProfileSearch", "parameters": [ { "name": "displayProfileId", "in": "formData", "description": "Filter by DisplayProfile Id", "required": false, "type": "integer" }, { "name": "displayProfile", "in": "formData", "description": "Filter by DisplayProfile Name", "required": false, "type": "string" }, { "name": "type", "in": "formData", "description": "Filter by DisplayProfile Type (windows|android|lg)", "required": false, "type": "string" }, { "name": "embed", "in": "formData", "description": "Embed related data such as config,commands,configWithDefault", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/DisplayProfile" } } } } }, "post": { "tags": [ "displayprofile" ], "summary": "Add Display Profile", "description": "Add a Display Profile", "operationId": "displayProfileAdd", "parameters": [ { "name": "name", "in": "formData", "description": "The Name of the Display Profile", "required": true, "type": "string" }, { "name": "type", "in": "formData", "description": "The Client Type this Profile will apply to", "required": true, "type": "string" }, { "name": "isDefault", "in": "formData", "description": "Flag indicating if this is the default profile for the client type", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DisplayProfile" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/displayprofile/{displayProfileId}": { "put": { "tags": [ "displayprofile" ], "summary": "Edit Display Profile", "description": "Edit a Display Profile", "operationId": "displayProfileEdit", "parameters": [ { "name": "displayProfileId", "in": "path", "description": "The Display Profile ID", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The Name of the Display Profile", "required": true, "type": "string" }, { "name": "type", "in": "formData", "description": "The Client Type this Profile will apply to", "required": true, "type": "string" }, { "name": "isDefault", "in": "formData", "description": "Flag indicating if this is the default profile for the client type", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } }, "delete": { "tags": [ "displayprofile" ], "summary": "Delete Display Profile", "description": "Delete an existing Display Profile", "operationId": "displayProfileDelete", "parameters": [ { "name": "displayProfileId", "in": "path", "description": "The Display Profile ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/displayprofile/{displayProfileId}/copy": { "post": { "tags": [ "displayprofile" ], "summary": "Copy Display Profile", "description": "Copy an existing Display Profile", "operationId": "displayProfileCopy", "parameters": [ { "name": "displayProfileId", "in": "path", "description": "The Display Profile ID", "required": true, "type": "integer" }, { "name": "name", "in": "path", "description": "The name for the copy", "required": true, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/DisplayProfile" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/layout": { "get": { "tags": [ "layout" ], "summary": "Search Layouts", "description": "Search for Layouts viewable by this user", "operationId": "layoutSearch", "parameters": [ { "name": "layoutId", "in": "formData", "description": "Filter by Layout Id", "required": false, "type": "integer" }, { "name": "layout", "in": "formData", "description": "Filter by partial Layout name", "required": false, "type": "string" }, { "name": "userId", "in": "formData", "description": "Filter by user Id", "required": false, "type": "integer" }, { "name": "retired", "in": "formData", "description": "Filter by retired flag", "required": false, "type": "integer" }, { "name": "tags", "in": "formData", "description": "Filter by Tags", "required": false, "type": "string" }, { "name": "exactTags", "in": "formData", "description": "A flag indicating whether to treat the tags filter as an exact match", "required": false, "type": "integer" }, { "name": "ownerUserGroupId", "in": "formData", "description": "Filter by users in this UserGroupId", "required": false, "type": "integer" }, { "name": "embed", "in": "formData", "description": "Embed related data such as regions, playlists, tags, etc", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Layout" } } } } }, "post": { "tags": [ "layout" ], "summary": "Add a Layout", "description": "Add a new Layout to the CMS", "operationId": "layoutAdd", "parameters": [ { "name": "name", "in": "formData", "description": "The layout name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "The layout description", "required": false, "type": "string" }, { "name": "layoutId", "in": "formData", "description": "If the Layout should be created with a Template, provide the ID, otherwise don't provide", "required": false, "type": "integer" }, { "name": "resolutionId", "in": "formData", "description": "If a Template is not provided, provide the resolutionId for this Layout.", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/layout/{layoutId}": { "put": { "tags": [ "layout" ], "summary": "Edit Layout", "description": "Edit a Layout", "operationId": "layoutEdit", "parameters": [ { "name": "layoutId", "in": "path", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The Layout Name", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "The Layout Description", "required": false, "type": "string" }, { "name": "tags", "in": "formData", "description": "A comma separated list of Tags", "required": false, "type": "string" }, { "name": "retired", "in": "formData", "description": "A flag indicating whether this Layout is retired.", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this Layout.", "required": true, "type": "string" }, { "name": "backgroundImageId", "in": "formData", "description": "A media ID to use as the background image for this Layout.", "required": false, "type": "integer" }, { "name": "backgroundzIndex", "in": "formData", "description": "The Layer Number to use for the background.", "required": true, "type": "integer" }, { "name": "resolutionId", "in": "formData", "description": "The Resolution ID to use on this Layout.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" } } } }, "delete": { "tags": [ "layout" ], "summary": "Delete Layout", "description": "Delete a Layout", "operationId": "layoutDelete", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/layout/retire/{layoutId}": { "put": { "tags": [ "layout" ], "summary": "Retire Layout", "description": "Retire a Layout so that it isn't available to Schedule. Existing Layouts will still be played", "operationId": "layoutRetire", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/layout/copy/{layoutId}": { "post": { "tags": [ "layout" ], "summary": "Copy Layout", "description": "Copy a Layout, providing a new name if applicable", "operationId": "layoutCopy", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout ID to Copy", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The name for the new Layout", "required": true, "type": "string" }, { "name": "description", "in": "formData", "description": "The Description for the new Layout", "required": false, "type": "string" }, { "name": "copyMediaFiles", "in": "formData", "description": "Flag indicating whether to make new Copies of all Media Files assigned to the Layout being Copied", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/layout/{layoutId}/tag": { "post": { "tags": [ "layout" ], "summary": "Tag Layout", "description": "Tag a Layout with one or more tags", "operationId": "layoutTag", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout Id to Tag", "required": true, "type": "integer" }, { "name": "tag", "in": "formData", "description": "An array of tags", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" } } } } }, "/layout/{layoutId}/untag": { "post": { "tags": [ "layout" ], "summary": "Untag Layout", "description": "Untag a Layout with one or more tags", "operationId": "layoutUntag", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout Id to Untag", "required": true, "type": "integer" }, { "name": "tag", "in": "formData", "description": "An array of tags", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" } } } } }, "/layout/status/{layoutId}": { "get": { "tags": [ "layout" ], "summary": "Layout Status", "description": "Calculate the Layout status and return a Layout", "operationId": "layoutStatus", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout Id to get the status", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" } } } } }, "/library": { "get": { "tags": [ "library" ], "summary": "Library Search", "description": "Search the Library for this user", "operationId": "librarySearch", "parameters": [ { "name": "mediaId", "in": "formData", "description": "Filter by Media Id", "required": false, "type": "integer" }, { "name": "media", "in": "formData", "description": "Filter by Media Name", "required": false, "type": "string" }, { "name": "type", "in": "formData", "description": "Filter by Media Type", "required": false, "type": "string" }, { "name": "ownerId", "in": "formData", "description": "Filter by Owner Id", "required": false, "type": "integer" }, { "name": "retired", "in": "formData", "description": "Filter by Retired", "required": false, "type": "integer" }, { "name": "tags", "in": "formData", "description": "Filter by Tags - comma seperated", "required": false, "type": "string" }, { "name": "exactTags", "in": "formData", "description": "A flag indicating whether to treat the tags filter as an exact match", "required": false, "type": "integer" }, { "name": "duration", "in": "formData", "description": "Filter by Duration - a number or less-than,greater-than,less-than-equal or great-than-equal followed by a | followed by a number", "required": false, "type": "string" }, { "name": "fileSize", "in": "formData", "description": "Filter by File Size - a number or less-than,greater-than,less-than-equal or great-than-equal followed by a | followed by a number", "required": false, "type": "string" }, { "name": "ownerUserGroupId", "in": "formData", "description": "Filter by users in this UserGroupId", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Media" } } } } }, "post": { "tags": [ "library" ], "summary": "Add Media", "description": "Add Media to the Library", "operationId": "libraryAdd", "parameters": [ { "name": "files", "in": "formData", "description": "The Uploaded File", "required": true, "type": "file" }, { "name": "name", "in": "formData", "description": "Optional Media Name", "required": false, "type": "string" }, { "name": "oldMediaId", "in": "formData", "description": "Id of an existing media file which should be replaced with the new upload", "required": false, "type": "integer" }, { "name": "updateInLayouts", "in": "formData", "description": "Flag (0, 1), set to 1 to update this media in all layouts (use with oldMediaId) ", "required": false, "type": "integer" }, { "name": "deleteOldRevisions", "in": "formData", "description": "Flag (0 , 1), to either remove or leave the old file revisions (use with oldMediaId)", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } } }, "/library/{mediaId}": { "put": { "tags": [ "library" ], "summary": "Edit Media", "description": "Edit a Media Item in the Library", "operationId": "libraryEdit", "parameters": [ { "name": "mediaId", "in": "path", "description": "The Media ID to Edit", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Media Item Name", "required": true, "type": "string" }, { "name": "duration", "in": "formData", "description": "The duration in seconds for this Media Item", "required": true, "type": "integer" }, { "name": "retired", "in": "formData", "description": "Flag indicating if this media is retired", "required": true, "type": "integer" }, { "name": "tags", "in": "formData", "description": "Comma separated list of Tags", "required": false, "type": "string" }, { "name": "updateInLayouts", "in": "formData", "description": "Flag indicating whether to update the duration in all Layouts the Media is assigned to", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Media" } } } }, "delete": { "tags": [ "library" ], "summary": "Delete Media", "description": "Delete Media from the Library", "operationId": "libraryDelete", "parameters": [ { "name": "mediaId", "in": "path", "description": "The Media ID to Delete", "required": true, "type": "integer" }, { "name": "forceDelete", "in": "formData", "description": "If the media item has been used should it be force removed from items that uses it?", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/library/tidy": { "delete": { "tags": [ "library" ], "summary": "Tidy Library", "description": "Routine tidy of the library, removing unused files.", "operationId": "libraryTidy", "parameters": [ { "name": "tidyGenericFiles", "in": "formData", "description": "Also delete generic files?", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } } }, "/library/download/{mediaId}/{type}": { "get": { "tags": [ "library" ], "summary": "Download Media", "description": "Download a Media file from the Library", "operationId": "libraryDownload", "produces": [ "application/octet-stream" ], "parameters": [ { "name": "mediaId", "in": "path", "description": "The Media ID to Download", "required": true, "type": "integer" }, { "name": "type", "in": "path", "description": "The Module Type of the Download", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "file" }, "headers": { "X-Sendfile": { "description": "Apache Send file header - if enabled.", "type": "string" }, "X-Accel-Redirect": { "description": "nginx send file header - if enabled.", "type": "string" } } } } } }, "/library/{mediaId}/tag": { "post": { "tags": [ "library" ], "summary": "Tag Media", "description": "Tag a Media with one or more tags", "operationId": "mediaTag", "parameters": [ { "name": "mediaId", "in": "path", "description": "The Media Id to Tag", "required": true, "type": "integer" }, { "name": "tag", "in": "formData", "description": "An array of tags", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Media" } } } } }, "/library/{mediaId}/untag": { "post": { "tags": [ "library" ], "summary": "Untag Media", "description": "Untag a Media with one or more tags", "operationId": "mediaUntag", "parameters": [ { "name": "mediaId", "in": "path", "description": "The Media Id to Untag", "required": true, "type": "integer" }, { "name": "tag", "in": "formData", "description": "An array of tags", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Media" } } } } }, "/library/usage/{mediaId}": { "get": { "tags": [ "library" ], "summary": "Get Library Item Usage Report", "description": "Get the records for the library item usage report", "operationId": "libraryUsageReport", "responses": { "200": { "description": "successful operation" } } } }, "/library/usage/layouts/{mediaId}": { "get": { "tags": [ "library" ], "summary": "Get Library Item Usage Report for Layouts", "description": "Get the records for the library item usage report for Layouts", "operationId": "libraryUsageLayoutsReport", "responses": { "200": { "description": "successful operation" } } } }, "/library/copy/{mediaId}": { "post": { "tags": [ "library" ], "summary": "Copy Media", "description": "Copy a Media, providing a new name and tags if applicable", "operationId": "mediaCopy", "parameters": [ { "name": "mediaId", "in": "path", "description": "The media ID to Copy", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The name for the new Media", "required": true, "type": "string" }, { "name": "tags", "in": "formData", "description": "The Optional tags for new Media", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Media" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/about": { "get": { "tags": [ "misc" ], "summary": "About", "description": "Information about this API, such as Version code, etc", "operationId": "about", "responses": { "200": { "description": "successful response", "schema": { "type": "object", "additionalProperties": { "title": "version", "type": "string" } } } } } }, "/playlist/widget/{widgetId}": { "put": { "tags": [ "widget" ], "summary": "Edit a Widget", "description": "Edit a Widget, please refer to individual widget Add documentation for module specific parameters", "operationId": "WidgetEdit", "parameters": [ { "name": "widgetId", "in": "path", "description": "The widget ID to edit", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the edited widget", "type": "string" } } } } }, "delete": { "tags": [ "widget" ], "summary": "Delete a Widget", "description": "Deleted a specified widget", "operationId": "WidgetDelete", "parameters": [ { "name": "widgetId", "in": "path", "description": "The widget ID to delete", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } } }, "/playlist/widget/transition/{type}/{widgetId}": { "put": { "tags": [ "widget" ], "summary": "Adds In/Out transition", "description": "Adds In/Out transition to a specified widget", "operationId": "WidgetEditTransition", "parameters": [ { "name": "type", "in": "path", "description": "Transition type, available options: in, out", "required": true, "type": "string" }, { "name": "widgetId", "in": "path", "description": "The widget ID to add the transition to", "required": true, "type": "integer" }, { "name": "transitionType", "in": "formData", "description": "Type of a transition, available Options: fly, fadeIn, fadeOut", "required": true, "type": "string" }, { "name": "transitionDuration", "in": "formData", "description": "Duration of this transition in milliseconds", "required": false, "type": "integer" }, { "name": "transitionDirection", "in": "formData", "description": "The direction for this transition, only appropriate for transitions that move, such as fly. Available options: N, NE, E, SE, S, SW, W, NW", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/{widgetId}/audio": { "put": { "tags": [ "widget" ], "summary": "Parameters for edting/adding audio file to a specific widget", "description": "Parameters for edting/adding audio file to a specific widget", "operationId": "WidgetAssignedAudioEdit", "parameters": [ { "name": "widgetId", "in": "path", "description": "Id of a widget to which you want to add audio or edit existing audio", "required": true, "type": "integer" }, { "name": "mediaId", "in": "formData", "description": "Id of a audio file in CMS library you wish to add to a widget", "required": false, "type": "integer" }, { "name": "volume", "in": "formData", "description": "Volume percentage(0-100) for this audio to play at", "required": false, "type": "integer" }, { "name": "loop", "in": "formData", "description": "Flag (0, 1) Should the audio loop if it finishes before the widget has finished?", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } }, "delete": { "tags": [ "widget" ], "summary": "Delete assigned audio widget", "description": "Delete assigned audio widget from specified widget ID", "operationId": "WidgetAudioDelete", "parameters": [ { "name": "widgetId", "in": "path", "description": "Id of a widget from which you want to delete the audio from", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation" } } } }, "/notification": { "get": { "tags": [ "notification" ], "summary": "Notification Search", "description": "Search this users Notifications", "operationId": "notificationSearch", "parameters": [ { "name": "notificationId", "in": "formData", "description": "Filter by Notification Id", "required": false, "type": "integer" }, { "name": "subject", "in": "formData", "description": "Filter by Subject", "required": false, "type": "string" }, { "name": "embed", "in": "formData", "description": "Embed related data such as userGroups,displayGroups", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Notification" } } } } }, "post": { "tags": [ "notification" ], "summary": "Notification Add", "description": "Add a Notification", "operationId": "notificationAdd", "parameters": [ { "name": "subject", "in": "formData", "description": "The Subject", "required": true, "type": "string" }, { "name": "body", "in": "formData", "description": "The Body", "required": false, "type": "string" }, { "name": "releaseDt", "in": "formData", "description": "ISO date representing the release date for this notification", "required": false, "type": "string" }, { "name": "isEmail", "in": "formData", "description": "Flag indicating whether this notification should be emailed.", "required": true, "type": "integer" }, { "name": "isInterrupt", "in": "formData", "description": "Flag indication whether this notification should interrupt the web portal nativation/login", "required": true, "type": "integer" }, { "name": "displayGroupIds", "in": "formData", "description": "The display group ids to assign this notification to", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "userGroupIds", "in": "formData", "description": "The user group ids to assign to this notification", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Notification" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/notification/{notificationId}": { "put": { "tags": [ "notification" ], "summary": "Notification Edit", "description": "Edit a Notification", "operationId": "notificationEdit", "parameters": [ { "name": "notificationId", "in": "path", "description": "The NotificationId", "required": true, "type": "integer" }, { "name": "subject", "in": "formData", "description": "The Subject", "required": true, "type": "string" }, { "name": "body", "in": "formData", "description": "The Body", "required": false, "type": "string" }, { "name": "releaseDt", "in": "formData", "description": "ISO date representing the release date for this notification", "required": true, "type": "string" }, { "name": "isEmail", "in": "formData", "description": "Flag indicating whether this notification should be emailed.", "required": true, "type": "integer" }, { "name": "isInterrupt", "in": "formData", "description": "Flag indication whether this notification should interrupt the web portal nativation/login", "required": true, "type": "integer" }, { "name": "displayGroupIds", "in": "formData", "description": "The display group ids to assign this notification to", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "userGroupIds", "in": "formData", "description": "The user group ids to assign to this notification", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Notification" } } } }, "delete": { "tags": [ "notification" ], "summary": "Delete Notification", "description": "Delete the provided notification", "operationId": "notificationDelete", "parameters": [ { "name": "notificationId", "in": "path", "description": "The Notification Id to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/playersoftware/{versionId}": { "put": { "tags": [ "Player Software" ], "summary": "Edit Player Version", "description": "Edit a Player Version file information", "operationId": "playersoftwareEdit", "parameters": [ { "name": "versionId", "in": "path", "description": "The Version ID to Edit", "required": true, "type": "integer" }, { "name": "playerShowVersion", "in": "formData", "description": "The Name of the player version application, this will be displayed in Version dropdowns in Display Profile and Display", "required": false, "type": "string" }, { "name": "version", "in": "formData", "description": "The Version number", "required": false, "type": "string" }, { "name": "code", "in": "formData", "description": "The Code number", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Media" } } } }, "delete": { "tags": [ "Player Software" ], "summary": "Delete Version", "description": "Delete Version file from the Library and Player Versions table", "operationId": "playerSoftwareDelete", "parameters": [ { "name": "versionId", "in": "path", "description": "The Version ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/playlist/widget": { "get": { "tags": [ "playlist" ], "summary": "Playlist Widget Search", "description": "Search widgets on a Playlist", "operationId": "playlistSearch", "parameters": [ { "name": "playlistId", "in": "formData", "description": "The Playlist ID to Search", "required": true, "type": "integer" }, { "name": "widgetId", "in": "formData", "description": "The widget ID to Search", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Widget" } } } } } }, "/playlist/library/assign/{playlistId}": { "post": { "tags": [ "playlist" ], "summary": "Assign Library Items", "description": "Assign Media from the Library to this Playlist", "operationId": "playlistLibraryAssign", "parameters": [ { "name": "playlistId", "in": "path", "description": "The Playlist ID to assign to", "required": true, "type": "integer" }, { "name": "media", "in": "formData", "description": "Array of Media IDs to assign", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "duration", "in": "formData", "description": "Optional duration for all Media in this assignment to use on the Widget", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "Optional flag indicating whether to enable the useDuration field", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Playlist" } } } } }, "/playlist/order/{playlistId}": { "post": { "tags": [ "playlist" ], "summary": "Order Widgets", "description": "Set the order of widgets in the Playlist", "operationId": "playlistOrder", "parameters": [ { "name": "playlistId", "in": "path", "description": "The Playlist ID to Order", "required": true, "type": "integer" }, { "name": "widgets", "in": "formData", "description": "Array of widgetIds and positions - all widgetIds present in the playlist need to be passed in the call with their positions", "required": true, "type": "array", "items": { "$ref": "#/definitions/PlaylistWidgetList" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Playlist" } } } } }, "/region/{id}": { "put": { "tags": [ "layout" ], "summary": "Edit Region", "description": "Edit Region", "operationId": "regionEdit", "parameters": [ { "name": "id", "in": "path", "description": "The Region ID to Edit", "required": true, "type": "integer" }, { "name": "width", "in": "formData", "description": "The Width, default 250", "required": false, "type": "integer" }, { "name": "height", "in": "formData", "description": "The Height", "required": false, "type": "integer" }, { "name": "top", "in": "formData", "description": "The Top Coordinate", "required": false, "type": "integer" }, { "name": "left", "in": "formData", "description": "The Left Coordinate", "required": false, "type": "integer" }, { "name": "zIndex", "in": "formData", "description": "The Layer for this Region", "required": false, "type": "integer" }, { "name": "transitionType", "in": "formData", "description": "The Transition Type. Must be a valid transition code as returned by /transition", "required": false, "type": "string" }, { "name": "transitionDuration", "in": "formData", "description": "The transition duration in milliseconds if required by the transition type", "required": false, "type": "integer" }, { "name": "transitionDirection", "in": "formData", "description": "The transition direction if required by the transition type.", "required": false, "type": "string" }, { "name": "loop", "in": "formData", "description": "Flag indicating whether this region should loop if there is only 1 media item in the timeline", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Region" } } } }, "post": { "tags": [ "layout" ], "summary": "Add Region", "description": "Add a Region to a Layout", "operationId": "regionAdd", "parameters": [ { "name": "id", "in": "path", "description": "The Layout ID to add the Region to", "required": true, "type": "integer" }, { "name": "width", "in": "formData", "description": "The Width, default 250", "required": false, "type": "integer" }, { "name": "height", "in": "formData", "description": "The Height", "required": false, "type": "integer" }, { "name": "top", "in": "formData", "description": "The Top Coordinate", "required": false, "type": "integer" }, { "name": "left", "in": "formData", "description": "The Left Coordinate", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Region" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/region/{regionId}": { "delete": { "tags": [ "layout" ], "summary": "Region Delete", "description": "Delete an existing region", "operationId": "regionDelete", "parameters": [ { "name": "regionId", "in": "path", "description": "The Region ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/region/position/all/{layoutId}": { "put": { "tags": [ "layout" ], "summary": "Position Regions", "description": "Position all regions for a Layout", "operationId": "regionPositionAll", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout ID", "required": true, "type": "integer" }, { "name": "regions", "in": "formData", "description": "Array of regions and their new positions. Each array element should be json encoded and have regionId, top, left, width and height.", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" } } } } }, "/resolution": { "get": { "tags": [ "resolution" ], "summary": "Resolution Search", "description": "Search Resolutions this user has access to", "operationId": "resolutionSearch", "parameters": [ { "name": "resolutionId", "in": "formData", "description": "Filter by Resolution Id", "required": false, "type": "integer" }, { "name": "resolution", "in": "formData", "description": "Filter by Resolution Name", "required": false, "type": "string" }, { "name": "enabled", "in": "formData", "description": "Filter by Enabled", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Resolution" } } } } }, "post": { "tags": [ "resolution" ], "summary": "Add Resolution", "description": "Add new Resolution", "operationId": "resolutionAdd", "parameters": [ { "name": "resolution", "in": "formData", "description": "A name for the Resolution", "required": true, "type": "string" }, { "name": "width", "in": "formData", "description": "The Display Width of the Resolution", "required": true, "type": "integer" }, { "name": "height", "in": "formData", "description": "The Display Height of the Resolution", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Resolution" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/resolution/{resolutionId}": { "put": { "tags": [ "resolution" ], "summary": "Edit Resolution", "description": "Edit new Resolution", "operationId": "resolutionEdit", "parameters": [ { "name": "resolutionId", "in": "path", "description": "The Resolution ID to Edit", "required": true, "type": "integer" }, { "name": "resolution", "in": "formData", "description": "A name for the Resolution", "required": true, "type": "string" }, { "name": "width", "in": "formData", "description": "The Display Width of the Resolution", "required": true, "type": "integer" }, { "name": "height", "in": "formData", "description": "The Display Height of the Resolution", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Resolution" } } } }, "delete": { "tags": [ "resolution" ], "summary": "Delete Resolution", "description": "Delete Resolution", "operationId": "resolutionDelete", "parameters": [ { "name": "resolutionId", "in": "path", "description": "The Resolution ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/schedule/data/events": { "get": { "tags": [ "schedule" ], "summary": "Generates the calendar that we draw events on", "operationId": "scheduleCalendarData", "parameters": [ { "name": "displayGroupIds", "in": "formData", "description": "The DisplayGroupIds to return the schedule for. Empty for All.", "type": "array", "items": { "type": "integer" } }, { "name": "from", "in": "formData", "description": "From Date Timestamp in Microseconds", "required": true, "type": "integer" }, { "name": "to", "in": "formData", "description": "To Date Timestamp in Microseconds", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful response", "schema": { "type": "array", "items": { "$ref": "#/definitions/ScheduleCalendarData" } } } } } }, "/schedule/{displayGroupId}/events": { "get": { "tags": [ "schedule" ], "summary": "Event List", "operationId": "scheduleCalendarData", "parameters": [ { "name": "displayGroupId", "in": "path", "description": "The DisplayGroupId to return the event list for.", "required": true, "type": "integer" }, { "name": "date", "in": "formData", "description": "Date in Y-m-d H:i:s", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful response" } } } }, "/schedule": { "post": { "tags": [ "schedule" ], "summary": "Add Schedule Event", "description": "Add a new scheduled event for a Campaign/Layout to be shown on a Display Group/Display.", "operationId": "scheduleAdd", "parameters": [ { "name": "eventTypeId", "in": "formData", "description": "The Event Type Id to use for this Event. 1=Campaign, 2=Command, 3=Overlay", "required": true, "type": "integer" }, { "name": "campaignId", "in": "formData", "description": "The Campaign ID to use for this Event. If a Layout is needed then the Campaign specific ID for that Layout should be used.", "required": false, "type": "integer" }, { "name": "commandId", "in": "formData", "description": "The Command ID to use for this Event.", "required": false, "type": "integer" }, { "name": "displayOrder", "in": "formData", "description": "The display order for this event. ", "required": true, "type": "integer" }, { "name": "isPriority", "in": "formData", "description": "An integer indicating the priority of this event. Normal events have a priority of 0.", "required": true, "type": "integer" }, { "name": "displayGroupIds", "in": "formData", "description": "The Display Group IDs for this event. Display specific Group IDs should be used to schedule on single displays.", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "dayPartId", "in": "formData", "description": "The Day Part for this event. Overrides supported are 0(custom) and 1(always). Defaulted to 0.", "required": false, "type": "integer" }, { "name": "syncTimezone", "in": "formData", "description": "Should this schedule be synced to the resulting Display timezone?", "required": false, "type": "integer" }, { "name": "fromDt", "in": "formData", "description": "The from date for this event.", "required": true, "type": "string", "format": "date-time" }, { "name": "toDt", "in": "formData", "description": "The to date for this event.", "required": false, "type": "string", "format": "date-time" }, { "name": "recurrenceType", "in": "formData", "description": "The type of recurrence to apply to this event.", "required": false, "type": "string", "enum": [ "", "Minute", "Hour", "Day", "Week", "Month", "Year" ] }, { "name": "recurrenceDetail", "in": "formData", "description": "The interval for the recurrence.", "required": false, "type": "integer" }, { "name": "recurrenceRange", "in": "formData", "description": "The end date for this events recurrence.", "required": false, "type": "string", "format": "date-time" }, { "name": "recurrenceRepeatsOn", "in": "formData", "description": "The days of the week that this event repeats - weekly only", "required": false, "type": "string", "format": "array", "items": { "type": "integer" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Schedule" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/schedule/{eventId}": { "put": { "tags": [ "schedule" ], "summary": "Edit Schedule Event", "description": "Edit a scheduled event for a Campaign/Layout to be shown on a Display Group/Display.", "operationId": "scheduleEdit", "parameters": [ { "name": "eventId", "in": "path", "description": "The Scheduled Event ID", "required": true, "type": "integer" }, { "name": "eventTypeId", "in": "formData", "description": "The Event Type Id to use for this Event. 1=Campaign, 2=Command, 3=Overlay", "required": true, "type": "integer" }, { "name": "campaignId", "in": "formData", "description": "The Campaign ID to use for this Event. If a Layout is needed then the Campaign specific ID for that Layout should be used.", "required": false, "type": "integer" }, { "name": "commandId", "in": "formData", "description": "The Command ID to use for this Event.", "required": false, "type": "integer" }, { "name": "displayOrder", "in": "formData", "description": "The display order for this event. ", "required": true, "type": "integer" }, { "name": "isPriority", "in": "formData", "description": "An integer indicating the priority of this event. Normal events have a priority of 0.", "required": true, "type": "integer" }, { "name": "displayGroupIds", "in": "formData", "description": "The Display Group IDs for this event. Display specific Group IDs should be used to schedule on single displays.", "required": true, "type": "array", "items": { "type": "integer" } }, { "name": "dayPartId", "in": "formData", "description": "The Day Part for this event. Overrides supported are 0(custom) and 1(always). Defaulted to 0.", "required": false, "type": "integer" }, { "name": "syncTimezone", "in": "formData", "description": "Should this schedule be synced to the resulting Display timezone?", "required": false, "type": "integer" }, { "name": "fromDt", "in": "formData", "description": "The from date for this event.", "required": true, "type": "string", "format": "date-time" }, { "name": "toDt", "in": "formData", "description": "The to date for this event.", "required": false, "type": "string", "format": "date-time" }, { "name": "recurrenceType", "in": "formData", "description": "The type of recurrence to apply to this event.", "required": false, "type": "string", "enum": [ "", "Minute", "Hour", "Day", "Week", "Month", "Year" ] }, { "name": "recurrenceDetail", "in": "formData", "description": "The interval for the recurrence.", "required": false, "type": "integer" }, { "name": "recurrenceRange", "in": "formData", "description": "The end date for this events recurrence.", "required": false, "type": "string", "format": "date-time" }, { "name": "recurrenceRepeatsOn", "in": "formData", "description": "The days of the week that this event repeats - weekly only", "required": false, "type": "string", "format": "array", "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Schedule" } } } }, "delete": { "tags": [ "schedule" ], "summary": "Delete Event", "description": "Delete a Scheduled Event", "operationId": "scheduleDelete", "parameters": [ { "name": "eventId", "in": "path", "description": "The Scheduled Event ID", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/stats": { "get": { "tags": [ "statistics" ], "operationId": "statsSearch", "parameters": [ { "name": "type", "in": "formData", "description": "The type of stat to return. Layout|Media|Widget or All", "required": false, "type": "string" }, { "name": "fromDt", "in": "formData", "description": "The start date for the filter. Default = 24 hours ago", "required": false, "type": "string" }, { "name": "toDt", "in": "formData", "description": "The end date for the filter. Default = now.", "required": false, "type": "string" }, { "name": "displayId", "in": "formData", "description": "An optional display Id to filter", "required": false, "type": "integer" }, { "name": "layoutId", "in": "formData", "description": "An optional array of layout Id to filter", "required": false, "type": "array", "items": { "type": "integer" } }, { "name": "mediaId", "in": "formData", "description": "An optional array of media Id to filter", "required": false, "type": "array", "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/StatisticsData" } } } } } }, "/template": { "get": { "tags": [ "template" ], "summary": "Template Search", "description": "Search templates this user has access to", "operationId": "templateSearch", "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Layout" } } } } } }, "/template/{layoutId}": { "post": { "tags": [ "template" ], "summary": "Add a template from a Layout", "description": "Use the provided layout as a base for a new template", "operationId": "template.add.from.layout", "parameters": [ { "name": "layoutId", "in": "path", "description": "The Layout ID", "required": true, "type": "integer" }, { "name": "includeWidgets", "in": "formData", "description": "Flag indicating whether to include the widgets in the Template", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "The Template Name", "required": true, "type": "string" }, { "name": "tags", "in": "formData", "description": "Comma separated list of Tags for the template", "required": false, "type": "string" }, { "name": "description", "in": "formData", "description": "A description of the Template", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Layout" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/user/me": { "get": { "tags": [ "user" ], "summary": "Get Me", "description": "Get my details", "operationId": "userMe", "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/User" } } } } }, "/user": { "get": { "tags": [ "user" ], "summary": "User Search", "description": "Search users", "operationId": "userSearch", "parameters": [ { "name": "userId", "in": "formData", "description": "Filter by User Id", "required": false, "type": "integer" }, { "name": "userName", "in": "formData", "description": "Filter by User Name", "required": false, "type": "string" }, { "name": "userTypeId", "in": "formData", "description": "Filter by UserType Id", "required": false, "type": "integer" }, { "name": "retired", "in": "formData", "description": "Filter by Retired", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/User" } } } } }, "post": { "tags": [ "user" ], "summary": "Add User", "description": "Add a new User", "operationId": "userAdd", "parameters": [ { "name": "userName", "in": "formData", "description": "The User Name", "required": true, "type": "string" }, { "name": "email", "in": "formData", "description": "The user email address", "required": false, "type": "string" }, { "name": "userTypeId", "in": "formData", "description": "The user type ID", "required": true, "type": "integer" }, { "name": "homePageId", "in": "formData", "description": "The homepage to use for this User", "required": true, "type": "integer" }, { "name": "libraryQuota", "in": "formData", "description": "The users library quota in kilobytes", "required": false, "type": "integer" }, { "name": "password", "in": "formData", "description": "The users password", "required": true, "type": "string" }, { "name": "groupId", "in": "formData", "description": "The inital user group for this User", "required": true, "type": "integer" }, { "name": "firstName", "in": "formData", "description": "The users first name", "required": false, "type": "string" }, { "name": "lastName", "in": "formData", "description": "The users last name", "required": false, "type": "string" }, { "name": "phone", "in": "formData", "description": "The users phone number", "required": false, "type": "string" }, { "name": "ref1", "in": "formData", "description": "Reference 1", "required": false, "type": "string" }, { "name": "ref2", "in": "formData", "description": "Reference 2", "required": false, "type": "string" }, { "name": "ref3", "in": "formData", "description": "Reference 3", "required": false, "type": "string" }, { "name": "ref4", "in": "formData", "description": "Reference 4", "required": false, "type": "string" }, { "name": "ref5", "in": "formData", "description": "Reference 5", "required": false, "type": "string" }, { "name": "newUserWizard", "in": "formData", "description": "Flag indicating whether to show the new user guide", "required": true, "type": "integer" }, { "name": "hideNavigation", "in": "formData", "description": "Flag indicating whether to hide the navigation", "required": true, "type": "integer" }, { "name": "isPasswordChangeRequired", "in": "formData", "description": "A flag indicating whether password change should be forced for this user", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/User" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/user/{userId}": { "put": { "tags": [ "user" ], "summary": "Edit User", "description": "Edit existing User", "operationId": "userEdit", "parameters": [ { "name": "userId", "in": "path", "description": "The user ID to edit", "required": true, "type": "integer" }, { "name": "userName", "in": "formData", "description": "The User Name", "required": true, "type": "string" }, { "name": "email", "in": "formData", "description": "The user email address", "required": false, "type": "string" }, { "name": "userTypeId", "in": "formData", "description": "The user type ID", "required": true, "type": "integer" }, { "name": "homePageId", "in": "formData", "description": "The homepage to use for this User", "required": true, "type": "integer" }, { "name": "libraryQuota", "in": "formData", "description": "The users library quota in kilobytes", "required": false, "type": "integer" }, { "name": "newPassword", "in": "formData", "description": "New User password", "required": false, "type": "string" }, { "name": "retypeNewPassword", "in": "formData", "description": "Repeat the new User password", "required": false, "type": "string" }, { "name": "retired", "in": "formData", "description": "Flag indicating whether to retire this user", "required": false, "type": "integer" }, { "name": "firstName", "in": "formData", "description": "The users first name", "required": false, "type": "string" }, { "name": "lastName", "in": "formData", "description": "The users last name", "required": false, "type": "string" }, { "name": "phone", "in": "formData", "description": "The users phone number", "required": false, "type": "string" }, { "name": "ref1", "in": "formData", "description": "Reference 1", "required": false, "type": "string" }, { "name": "ref2", "in": "formData", "description": "Reference 2", "required": false, "type": "string" }, { "name": "ref3", "in": "formData", "description": "Reference 3", "required": false, "type": "string" }, { "name": "ref4", "in": "formData", "description": "Reference 4", "required": false, "type": "string" }, { "name": "ref5", "in": "formData", "description": "Reference 5", "required": false, "type": "string" }, { "name": "newUserWizard", "in": "formData", "description": "Flag indicating whether to show the new user guide", "required": true, "type": "integer" }, { "name": "hideNavigation", "in": "formData", "description": "Flag indicating whether to hide the navigation", "required": true, "type": "integer" }, { "name": "isPasswordChangeRequired", "in": "formData", "description": "A flag indicating whether password change should be forced for this user", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/User" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } }, "delete": { "tags": [ "user" ], "summary": "User Delete", "description": "Delete user", "operationId": "userDelete", "parameters": [ { "name": "userId", "in": "path", "description": "Id of the user to delete", "required": true, "type": "integer" }, { "name": "deleteAllItems", "in": "formData", "description": "Flag indicating whether to delete all items owned by that user", "required": false, "type": "integer" }, { "name": "reassignUserId", "in": "formData", "description": "Reassign all items owned by this user to the specified user ID", "required": false, "type": "integer" } ], "responses": { "204": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/User" } } } } } }, "/user/permissions/{entity}/{objectId}": { "get": { "tags": [ "user" ], "summary": "Permission Data", "description": "Permission data for the Entity and Object Provided.", "operationId": "userPermissionsSearch", "parameters": [ { "name": "entity", "in": "path", "description": "The Entity", "required": true, "type": "string" }, { "name": "objectId", "in": "path", "description": "The ID of the Object to return permissions for", "required": true, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/Permission" } } } } }, "post": { "tags": [ "user" ], "summary": "Permission Set", "description": "Set Permissions to users/groups for the provided entity.", "operationId": "userPermissionsSet", "parameters": [ { "name": "entity", "in": "path", "description": "The Entity", "required": true, "type": "string" }, { "name": "objectId", "in": "path", "description": "The ID of the Object to set permissions on", "required": true, "type": "integer" }, { "name": "groupIds", "in": "formData", "description": "Array of permissions with groupId as the key", "required": true, "type": "array", "items": { "type": "string" } }, { "name": "ownerId", "in": "formData", "description": "Change the owner of this item. Leave empty to keep the current owner", "required": false, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "/user/pref": { "get": { "tags": [ "user" ], "summary": "Retrieve User Preferences", "description": "User preferences for non-state information, such as Layout designer zoom levels", "operationId": "userPrefGet", "parameters": [ { "name": "preference", "in": "formData", "description": "An optional preference", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful response", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserOption" } } } } }, "post": { "tags": [ "user" ], "summary": "Save User Preferences", "description": "Save User preferences for non-state information, such as Layout designer zoom levels", "operationId": "userPrefEdit", "parameters": [ { "name": "preference", "in": "body", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/UserOption" } } } ], "responses": { "204": { "description": "successful operation" } } } }, "/group": { "get": { "tags": [ "usergroup" ], "summary": "UserGroup Search", "description": "Search User Groups", "operationId": "userGroupSearch", "parameters": [ { "name": "userGroupId", "in": "formData", "description": "Filter by UserGroup Id", "required": false, "type": "integer" }, { "name": "userGroup", "in": "formData", "description": "Filter by UserGroup Name", "required": false, "type": "string" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserGroup" } } } } }, "post": { "tags": [ "usergroup" ], "summary": "UserGroup Add", "description": "Add User Group", "operationId": "userGroupAdd", "parameters": [ { "name": "group", "in": "formData", "description": "Name of the User Group", "required": true, "type": "string" }, { "name": "libraryQuota", "in": "formData", "description": "The quota that should be applied (KiB). Provide 0 for no quota", "required": false, "type": "string" }, { "name": "isSystemNotification", "in": "formData", "description": "Flag (0, 1), should members of this Group receive system notifications?", "required": false, "type": "integer" }, { "name": "isDisplayNotification", "in": "formData", "description": "Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserGroup" } } } } } }, "/group/{userGroupId}": { "put": { "tags": [ "usergroup" ], "summary": "UserGroup Edit", "description": "Edit User Group", "operationId": "userGroupEdit", "parameters": [ { "name": "userGroupId", "in": "path", "description": "ID of the User Group", "required": true, "type": "integer" }, { "name": "group", "in": "formData", "description": "Name of the User Group", "required": true, "type": "string" }, { "name": "libraryQuota", "in": "formData", "description": "The quota that should be applied (KiB). Provide 0 for no quota", "required": false, "type": "string" }, { "name": "isSystemNotification", "in": "formData", "description": "Flag (0, 1), should members of this Group receive system notifications?", "required": false, "type": "integer" }, { "name": "isDisplayNotification", "in": "formData", "description": "Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see", "required": false, "type": "integer" } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserGroup" } } } } }, "delete": { "tags": [ "usergroup" ], "summary": "Delete User Group", "description": "Delete User Group", "operationId": "userGroupDelete", "parameters": [ { "name": "userGroupId", "in": "path", "description": "The user Group ID to Delete", "required": true, "type": "integer" } ], "responses": { "204": { "description": "successful operation" } } } }, "group/members/assign/{userGroupId}": { "post": { "tags": [ "usergroup" ], "summary": "Assign User to User Group", "description": "Assign User to User Group", "operationId": "userGroupAssign", "parameters": [ { "name": "userGroupId", "in": "path", "description": "ID of the user group to which assign the user", "required": true, "type": "string" }, { "name": "userId", "in": "formData", "description": "Array of userIDs to assign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserGroup" } } } } } }, "group/members/unassign/{userGroupId}": { "post": { "tags": [ "usergroup" ], "summary": "Unassign User from User Group", "description": "Unassign User from User Group", "operationId": "userGroupUnassign", "parameters": [ { "name": "userGroupId", "in": "path", "description": "ID of the user group from which to unassign the user", "required": true, "type": "string" }, { "name": "userId", "in": "formData", "description": "Array of userIDs to unassign", "required": true, "type": "array", "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful operation", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserGroup" } } } } } }, "/group/{userGroupId}/copy": { "post": { "tags": [ "usergroup" ], "summary": "Copy User Group", "description": "Copy an user group, optionally copying the group members", "operationId": "userGroupCopy", "parameters": [ { "name": "userGroupId", "in": "path", "description": "The User Group ID to Copy", "required": true, "type": "integer" }, { "name": "group", "in": "formData", "description": "The Group Name", "required": true, "type": "string" }, { "name": "copyMembers", "in": "formData", "description": "Flag indicating whether to copy group members", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/UserGroup" }, "headers": { "Location": { "description": "Location of the new record", "type": "string" } } } } } }, "/playlist/widget/audio/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Parameters for editing existing audio widget on a layout", "description": "Parameters for editing existing audio widget on a layout, for adding new audio, please refer to POST /library documentation", "operationId": "WidgetAudioEdit", "parameters": [ { "name": "useDuration", "in": "formData", "description": "Edit Only - (0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "duration", "in": "formData", "description": "Edit Only - The Widget Duration", "required": false, "type": "integer" }, { "name": "name", "in": "formData", "description": "Edit Only - The Widget name", "required": false, "type": "string" }, { "name": "mute", "in": "formData", "description": "Edit only - Flag (0, 1) Should the audio be muted?", "required": false, "type": "integer" }, { "name": "loop", "in": "formData", "description": "Edit only - Flag (0, 1) Should the audio loop (only for duration > 0 )?", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/chart/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Chart Widget", "description": "Add a new Chart Widget to the specified playlist", "operationId": "WidgetChartAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "dataSetId", "in": "formData", "description": "Create Chart Widget using provided dataSetId of an existing dataSet", "required": true, "type": "integer" }, { "name": "graphType", "in": "formData", "description": "EDIT only - Chart Type", "required": true, "type": "string" }, { "name": "columnType", "in": "formData", "description": "EDIT only - Array of Column Types (x-axis, y-axis, series-identifier) to assign", "required": false, "type": "array", "items": { "type": "integer" } }, { "name": "dataSetColumnId", "in": "formData", "description": "EDIT only - Array of dataSetColumn IDs to assign", "required": false, "type": "array", "items": { "type": "integer" } }, { "name": "duration", "in": "formData", "description": "EDIT Only - The Chart Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "Edit Only - (0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "updateInterval", "in": "formData", "description": "EDIT Only - Update interval in minutes", "required": false, "type": "integer" }, { "name": "filter", "in": "formData", "description": "EDIT Only - SQL clause for filter this dataSet", "required": false, "type": "string" }, { "name": "ordering", "in": "formData", "description": "EDIT Only - SQL clause for how this dataSet should be ordered", "required": false, "type": "string" }, { "name": "useOrderingClause", "in": "formData", "description": "EDIT Only - flag (0,1) Use advanced order clause - set to 1 if ordering is provided", "required": false, "type": "integer" }, { "name": "useFilteringClause", "in": "formData", "description": "EDIT Only - flag (0,1) Use advanced filter clause - set to 1 if filter is provided", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "EDIT Only - Background Color", "required": false, "type": "string" }, { "name": "fontColor", "in": "formData", "description": "EDIT Only - Font Color", "required": false, "type": "string" }, { "name": "fontSize", "in": "formData", "description": "EDIT Only - Font Size", "required": false, "type": "integer" }, { "name": "showLegend", "in": "formData", "description": "EDIT Only - Should the Legend be Shown", "required": false, "type": "integer" }, { "name": "legendPosition", "in": "formData", "description": "EDIT Only - Where should the Legend be Shown (top, left, right, bottom)", "required": false, "type": "string" }, { "name": "startYAtZero", "in": "formData", "description": "EDIT Only - Start the Y-Axis at 0", "required": false, "type": "integer" }, { "name": "title", "in": "formData", "description": "EDIT Only - Chart title", "required": false, "type": "string" }, { "name": "x-axis-label", "in": "formData", "description": "EDIT Only - Chart x-axis label", "required": false, "type": "string" }, { "name": "y-axis-label", "in": "formData", "description": "EDIT Only - Chart y-axis label", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/clock/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Clock Widget", "description": "Add a new Clock Widget to the specified playlist", "operationId": "WidgetClockAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Clock widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "themeId", "in": "formData", "description": "Flag (0 , 1) for Analogue clock the light and dark theme", "required": false, "type": "integer" }, { "name": "clockTypeId", "in": "formData", "description": "Type of a clock widget 1-Analogue, 2-Digital, 3-Flip clock", "required": false, "type": "integer" }, { "name": "offset", "in": "formData", "description": "The offset in minutes that should be applied to the current time, if a counter is selected then date/time to run from in the format Y-m-d H:i:s", "required": false, "type": "string" }, { "name": "format", "in": "formData", "description": "For digital clock, format in which the time should be displayed example [HH:mm]", "required": false, "type": "string" }, { "name": "showSeconds", "in": "formData", "description": "For Flip Clock, should the clock show seconds or not", "required": false, "type": "integer" }, { "name": "ClockFace", "in": "formData", "description": "For Flip Clock, supported options: TwelveHourClock TwentyFourHourClock HourlyCounter MinuteCounter DailyCounter", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/currencies/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Currencies Widget", "description": "Add a new Currencies Widget to the specified playlist", "operationId": "WidgetCurrenciesAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Currencies widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "base", "in": "formData", "description": "The base currency", "required": true, "type": "string" }, { "name": "items", "in": "formData", "description": "A comma separated list of Currency Acronyms/Abbreviations, e.g. GBP,USD,EUR. For the best results enter no more than 5 items.", "required": true, "type": "string" }, { "name": "reverseConversion", "in": "formData", "description": "(0, 1) Select 1 if you'd like your base currency to be used as the comparison currency you've entered", "required": false, "type": "integer" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind ", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal)", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "noRecordsMessage", "in": "formData", "description": "A message to display when there are no records returned by the search query", "required": false, "type": "string" }, { "name": "dateFormat", "in": "formData", "description": "The format to apply to all dates returned by he widget", "required": false, "type": "string" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "durationIsPerPage", "in": "formData", "description": "A flag (0, 1), The duration specified is per page/item, otherwise the widget duration is divided between the number of pages/items", "required": false, "type": "integer" }, { "name": "templateId", "in": "formData", "description": "Use pre-configured templates, available options: currencies1, currencies2", "required": false, "type": "string" }, { "name": "overrideTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use templateId or set to 1 and provide whole template in the next parameters", "required": false, "type": "integer" }, { "name": "widgetOriginalWidth", "in": "formData", "description": "This is the intended Width of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "widgetOriginalHeight", "in": "formData", "description": "This is the intended Height of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "maxItemsPerPage", "in": "formData", "description": "This is the intended number of items on each page", "required": false, "type": "integer" }, { "name": "mainTemplate", "in": "formData", "description": "Main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "itemtemplate", "in": "formData", "description": "Template for each item, replaces [itemsTemplate] in main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional StyleSheet Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/dataSetView/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a dataSetView Widget", "description": "Add a new dataSetView Widget to the specified playlist", "operationId": "WidgetdataSetViewAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "dataSetId", "in": "formData", "description": "Create dataSetView Widget using provided dataSetId of an existing dataSet", "required": true, "type": "integer" }, { "name": "dataSetColumnId", "in": "formData", "description": " EDIT only - Array of dataSetColumn IDs to assign", "required": false, "type": "array", "items": { "type": "integer" } }, { "name": "duration", "in": "formData", "description": "EDIT Only - The dataSetView Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "Edit Only - (0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "updateInterval", "in": "formData", "description": "EDIT Only - Update interval in minutes", "required": false, "type": "integer" }, { "name": "rowsPerPage", "in": "formData", "description": "EDIT Only - Number of rows per page, 0 for no pages", "required": false, "type": "integer" }, { "name": "showHeadings", "in": "formData", "description": "EDIT Only - Should the table show Heading? (0,1)", "required": false, "type": "integer" }, { "name": "upperLimit", "in": "formData", "description": "EDIT Only - Upper row limit for this dataSet, 0 for no limit", "required": false, "type": "integer" }, { "name": "lowerLimit", "in": "formData", "description": "EDIT Only - Lower row limit for this dataSet, 0 for no limit", "required": false, "type": "integer" }, { "name": "filter", "in": "formData", "description": "EDIT Only - SQL clause for filter this dataSet", "required": false, "type": "string" }, { "name": "ordering", "in": "formData", "description": "EDIT Only - SQL clause for how this dataSet should be ordered", "required": false, "type": "string" }, { "name": "templateId", "in": "formData", "description": "EDIT Only - Template you'd like to apply, options available: empty, light-green", "required": false, "type": "string" }, { "name": "overrideTemplate", "in": "formData", "description": "EDIT Only - flag (0, 1) override template checkbox", "required": false, "type": "integer" }, { "name": "useOrderingClause", "in": "formData", "description": "EDIT Only - flag (0,1) Use advanced order clause - set to 1 if ordering is provided", "required": false, "type": "integer" }, { "name": "useFilteringClause", "in": "formData", "description": "EDIT Only - flag (0,1) Use advanced filter clause - set to 1 if filter is provided", "required": false, "type": "integer" }, { "name": "noDataMessage", "in": "formData", "description": "EDIT Only - A message to display when no data is returned from the source", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/embedded/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Embedded Widget", "description": "Add a new Embedded Widget to the specified playlist", "operationId": "WidgetEmbeddedAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add an Embedded Widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "transparency", "in": "formData", "description": "Flag (0,1) - Should the HTML be shown with transparent background? - not available on Windows Clients", "required": false, "type": "integer" }, { "name": "scaleContent", "in": "formData", "description": "Flag (0,1) - Should the embedded content be scaled along with the layout?", "required": false, "type": "integer" }, { "name": "embedHtml", "in": "formData", "description": "HTML to embed", "required": false, "type": "string" }, { "name": "embedScript", "in": "formData", "description": "HEAD content to Embed (including script tags)", "required": false, "type": "string" }, { "name": "embedStyle", "in": "formData", "description": "Custom Style Sheets (CSS)", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/finance/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Finance Widget", "description": "Add a new Finance Widget to the specified playlist", "operationId": "WidgetFinanceAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Finance widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "item", "in": "formData", "description": "Items wanted, can be comma separated (example EURUSD, GBPUSD), pass only with overrideTemplate set to 1", "required": true, "type": "string" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind, marqueeUp, marqueeDown, marqueeRight, marqueeLeft", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal) or the Marquee speed in a low to high scale (normal = 1)", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "noRecordsMessage", "in": "formData", "description": "A message to display when there are no records returned by the search query", "required": false, "type": "string" }, { "name": "dateFormat", "in": "formData", "description": "The format to apply to all dates returned by he widget", "required": false, "type": "string" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "templateId", "in": "formData", "description": "Use pre-configured templates, available options: currency-simple, stock-simple", "required": false, "type": "string" }, { "name": "durationIsPerItem", "in": "formData", "description": "A flag (0, 1), The duration specified is per item, otherwise the widget duration is divided between the number of items", "required": false, "type": "integer" }, { "name": "overrideTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use templateId or set to 1 and provide whole template in the next parameters", "required": false, "type": "integer" }, { "name": "yql", "in": "formData", "description": "The YQL query to use for data, pass only with overrideTemplate set to 1", "required": true, "type": "string" }, { "name": "resultIdentifier", "in": "formData", "description": "The name of the result identifier returned by the YQL, pass only with overrideTemplate set to 1", "required": false, "type": "string" }, { "name": "template", "in": "formData", "description": "Main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional StyleSheet Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/forecastIo/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Weather Widget", "description": "Add a new Weather Widget to the specified playlist", "operationId": "WidgetWeatherAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Weather widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "useDisplayLocation", "in": "formData", "description": "Flag (0, 1) Use the location configured on display", "required": true, "type": "integer" }, { "name": "longitude", "in": "formData", "description": "The longitude for this weather widget, only pass if useDisplayLocation set to 0", "required": false, "type": "number" }, { "name": "latitude", "in": "formData", "description": "The latitude for this weather widget, only pass if useDisplayLocation set to 0", "required": false, "type": "number" }, { "name": "templateId", "in": "formData", "description": "Use pre-configured templates, available options: weather-module0-5day, weather-module0-singleday, weather-module0-singleday2, weather-module1l, weather-module1p, weather-module2l, weather-module2p, weather-module3l, weather-module3p, weather-module4l, weather-module4p, weather-module5l, weather-module6v, weather-module6h", "required": false, "type": "string" }, { "name": "units", "in": "formData", "description": "Units you would like to use, available options: auto, ca, si, uk2, us", "required": false, "type": "string" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "lang", "in": "formData", "description": "Language you'd like to use, supported languages ar, az, be, bs, cs, de, en, el, es, fr, hr, hu, id, it, is, kw, nb, nl, pl, pt, ru, sk, sr, sv, tet, tr, uk, x-pig-latin, zh, zh-tw", "required": false, "type": "string" }, { "name": "dayConditionsOnly", "in": "formData", "description": "Flag (0, 1) Would you like to only show the Daytime weather conditions", "required": false, "type": "integer" }, { "name": "overrideTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use templateId or set to 1 and provide whole template in the next parameters", "required": false, "type": "integer" }, { "name": "widgetOriginalWidth", "in": "formData", "description": "This is the intended Width of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "widgetOriginalHeight", "in": "formData", "description": "This is the intended Height of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "currentTemplate", "in": "formData", "description": "Current template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "dailyTemplate", "in": "formData", "description": "Replaces [dailyForecast] in main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional StyleSheet, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/googleTraffic/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Google Traffic Widget", "description": "Add a new Google traffic Widget to the specified playlist", "operationId": "WidgetGoogleTrafficAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "zoom", "in": "formData", "description": "How far should the map be zoomed in? The higher the number the closer the zoom, 1 represents entire globe", "required": true, "type": "integer" }, { "name": "useDisplayLocation", "in": "formData", "description": "Flag (0, 1) Use the location configured on display", "required": true, "type": "integer" }, { "name": "longitude", "in": "formData", "description": "The longitude for this Google Traffic widget, only pass if useDisplayLocation set to 0", "required": false, "type": "number" }, { "name": "latitude", "in": "formData", "description": "The latitude for this Google Traffic widget, only pass if useDisplayLocation set to 0", "required": false, "type": "number" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/hls/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a HLS Widget", "description": "Add a new HLS Widget to the specified playlist", "operationId": "WidgetHlsAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "useDuration", "in": "formData", "description": "Edit Only - (0, 1) Select only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "uri", "in": "formData", "description": "URL to HLS video stream", "required": true, "type": "string" }, { "name": "mute", "in": "formData", "description": "Flag (0, 1) Should the video be muted?", "required": false, "type": "integer" }, { "name": "transparency", "in": "formData", "description": "Flag (0, 1), This causes some android devices to switch to a hardware accelerated web view", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/image/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Parameters for editing existing image on a layout", "description": "Parameters for editing existing image on a layout, for adding new images, please refer to POST /library documentation", "operationId": "WidgetImageEdit", "parameters": [ { "name": "name", "in": "formData", "description": "Edit only - Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Edit Only - The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "Edit only (0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "scaleTypeId", "in": "formData", "description": "Edit only - Select scale type available options: center, stretch", "required": false, "type": "string" }, { "name": "alignId", "in": "formData", "description": "Edit only - Horizontal alignment - left, center, bottom", "required": false, "type": "string" }, { "name": "valignId", "in": "formData", "description": "Edit only - Vertical alignment - top, middle, bottom", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/localVideo/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Local Video Widget", "description": "Add a new Local Video Widget to the specified playlist", "operationId": "WidgetLocalVideoAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "uri", "in": "formData", "description": "A local file path or URL to the video. This can be RTSP stream.", "required": true, "type": "string" }, { "name": "scaleTypeId", "in": "formData", "description": "How should the video be scaled, available options: aspect, stretch", "required": false, "type": "string" }, { "name": "mute", "in": "formData", "description": "Flag (0, 1) Should the video be muted?", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/notificationview/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Notification Widget", "description": "Add a new Notification Widget to the specified playlist", "operationId": "WidgetNotificationAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add an Notification Widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "age", "in": "formData", "description": "The maximum notification age in minutes - 0 for all", "required": true, "type": "integer" }, { "name": "noDataMessage", "in": "formData", "description": "Message to show when no notifications are available", "required": false, "type": "string" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind ", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal)", "required": false, "type": "integer" }, { "name": "durationIsPerItem", "in": "formData", "description": "A flag (0, 1), The duration specified is per page/item, otherwise the widget duration is divided between the number of pages/items", "required": false, "type": "integer" }, { "name": "embedStyle", "in": "formData", "description": "Custom Style Sheets (CSS)", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/pdf/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Parameters for editing existing pdf on a layout", "description": "Parameters for editing existing pdf on a layout, for adding new files, please refer to POST /library documentation", "operationId": "WidgetPdfEdit", "parameters": [ { "name": "name", "in": "formData", "description": "Edit only - Optional Widget Name", "required": false, "type": "string" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "duration", "in": "formData", "description": "Edit Only - The Widget Duration", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/shellCommand/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Shell Command Widget", "description": "Add a new Shell Command Widget to the specified playlist", "operationId": "WidgetShellCommandAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "windowsCommand", "in": "formData", "description": "Enter a Windows command line compatible command", "required": false, "type": "string" }, { "name": "linuxCommand", "in": "formData", "description": "Enter a Android / Linux command line compatible command", "required": false, "type": "string" }, { "name": "launchThroughCmd", "in": "formData", "description": "flag (0,1) Windows only, Should the player launch this command through the windows command line (cmd.exe)? This is useful for batch files, if you try to terminate this command only the command line will be terminated", "required": false, "type": "integer" }, { "name": "terminateCommand", "in": "formData", "description": "flag (0,1) Should the player forcefully terminate the command after the duration specified, 0 to let the command terminate naturally", "required": false, "type": "integer" }, { "name": "useTaskkill", "in": "formData", "description": "flag (0,1) Windows only, should the player use taskkill to terminate commands", "required": false, "type": "integer" }, { "name": "commandCode", "in": "formData", "description": "Enter a reference code for exiting command in CMS", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/stocks/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Stocks Widget", "description": "Add a new Stocks Widget to the specified playlist", "operationId": "WidgetStocksAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Stocks widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "items", "in": "formData", "description": "A comma separated list of Stock Ticker Symbols, e.g. GOOGL,NVDA,AMZN. For the best results enter no more than 5 items.", "required": true, "type": "string" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal)", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "noRecordsMessage", "in": "formData", "description": "A message to display when there are no records returned by the search query", "required": false, "type": "string" }, { "name": "dateFormat", "in": "formData", "description": "The format to apply to all dates returned by he widget", "required": false, "type": "string" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "templateId", "in": "formData", "description": "Use pre-configured templates, available options: stocks1, stocks2", "required": false, "type": "string" }, { "name": "durationIsPerPage", "in": "formData", "description": "A flag (0, 1), The duration specified is per page, otherwise the widget duration is divided between the number of pages/items", "required": false, "type": "integer" }, { "name": "overrideTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use templateId or set to 1 and provide whole template in the next parameters", "required": false, "type": "integer" }, { "name": "maxItemsPerPage", "in": "formData", "description": "This is the intended number of items on each page", "required": false, "type": "integer" }, { "name": "mainTemplate", "in": "formData", "description": "Main template, Pass only with overrideTemplate set to 1", "required": false, "type": "string" }, { "name": "itemtemplate", "in": "formData", "description": "Template for each item, replaces [itemsTemplate] in main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional StyleSheet Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/text/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Text Widget", "description": "Add a new Text Widget to the specified playlist", "operationId": "WidgetTextAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind, marqueeUp, marqueeDown, marqueeRight, marqueeLeft", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal) or the Marquee speed in a low to high scale (normal = 1)", "required": false, "type": "integer" }, { "name": "backgroundcolor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "marqueeInlineSelector", "in": "formData", "description": "The selector to use for stacking marquee items in a line when scrolling left/right", "required": false, "type": "string" }, { "name": "text", "in": "formData", "description": "Enter the text to display", "required": true, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/ticker/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a ticker Widget", "description": "Add a new ticker Widget to the specified playlist", "operationId": "WidgetTickerAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "sourceId", "in": "formData", "description": "Add only - 1 for rss feed, 2 for dataset", "required": true, "type": "integer" }, { "name": "uri", "in": "formData", "description": "For sourceId=1, the link for the rss feed", "required": true, "type": "string" }, { "name": "dataSetId", "in": "formData", "description": "For sourceId=2, Create ticker Widget using provided dataSetId of an existing dataSet", "required": true, "type": "integer" }, { "name": "updateInterval", "in": "formData", "description": "EDIT Only - Update interval in minutes", "required": false, "type": "integer" }, { "name": "updateIntervalImages", "in": "formData", "description": "EDIT Only - Update interval for downloaded Images, in minutes", "required": false, "type": "integer" }, { "name": "effect", "in": "formData", "description": "Edit only - Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind, marqueeUp, marqueeDown, marqueeRight, marqueeLeft", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "Edit only - The transition speed of the selected effect in milliseconds (1000 = normal) or the Marquee speed in a low to high scale (normal = 1)", "required": false, "type": "integer" }, { "name": "copyright", "in": "formData", "description": "EDIT Only and SourceId=1 - Copyright information to display as the last item in this feed. can be styled with the #copyright CSS selector", "required": false, "type": "string" }, { "name": "numItems", "in": "formData", "description": "EDIT Only and SourceId=1 - The number of RSS items you want to display", "required": false, "type": "integer" }, { "name": "takeItemsFrom", "in": "formData", "description": "EDIT Only and SourceId=1 - Take the items form the beginning or the end of the list, available options: start, end", "required": false, "type": "string" }, { "name": "reverseOrder", "in": "formData", "description": "A flag (0, 1), Should we reverse the order of the feed items as well?", "required": false, "type": "integer" }, { "name": "durationIsPerItem", "in": "formData", "description": "A flag (0, 1), The duration specified is per item, otherwise it is per feed", "required": false, "type": "integer" }, { "name": "itemsSideBySide", "in": "formData", "description": "A flag (0, 1), Should items be shown side by side", "required": false, "type": "integer" }, { "name": "upperLimit", "in": "formData", "description": "EDIT Only, SourceId=2 - Upper low limit for this dataSet, 0 for nor limit", "required": false, "type": "integer" }, { "name": "lowerLimit", "in": "formData", "description": "EDIT Only, SourceId=2 - Lower low limit for this dataSet, 0 for nor limit", "required": false, "type": "integer" }, { "name": "itemsPerPage", "in": "formData", "description": "EDIT Only - When in single mode, how many items per page should be shown", "required": false, "type": "integer" }, { "name": "dateFormat", "in": "formData", "description": "EDIT Only - The date format to apply to all dates returned by the ticker", "required": false, "type": "string" }, { "name": "allowedAttributes", "in": "formData", "description": "EDIT Only and SourceId=1 - A comma separated list of attributes that should not be stripped from the feed", "required": false, "type": "string" }, { "name": "stripTags", "in": "formData", "description": "EDIT Only and SourceId=1 - A comma separated list of attributes that should be stripped from the feed", "required": false, "type": "string" }, { "name": "backgroundColor", "in": "formData", "description": "Edit only - A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "disableDateSort", "in": "formData", "description": "EDIT Only, SourceId=1 - Should the date sort applied to the feed be disabled?", "required": false, "type": "integer" }, { "name": "textDirection", "in": "formData", "description": "EDIT Only, SourceId=1 - Which direction does the text in the feed use? Available options: ltr, rtl", "required": false, "type": "string" }, { "name": "noDataMessage", "in": "formData", "description": "EDIT Only - A message to display when no data is returned from the source", "required": false, "type": "string" }, { "name": "templateId", "in": "formData", "description": "EDIT Only, SourceId=1 - Template you'd like to apply, options available: title-only, prominent-title-with-desc-and-name-separator, media-rss-with-title, media-rss-wth-left-hand-text, media-rss-image-only", "required": false, "type": "string" }, { "name": "overrideTemplate", "in": "formData", "description": "EDIT Only, SourceId=1 - flag (0, 1) override template checkbox", "required": false, "type": "integer" }, { "name": "template", "in": "formData", "description": "Template for each item, replaces [itemsTemplate] in main template, Pass only with overrideTemplate set to 1 or with sourceId=2 ", "required": false, "type": "string" }, { "name": "css", "in": "formData", "description": "Optional StyleSheet Pass only with overrideTemplate set to 1 or with sourceId=2 ", "required": false, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "filter", "in": "formData", "description": "EDIT Only, SourceId=2 - SQL clause for filter this dataSet", "required": false, "type": "string" }, { "name": "ordering", "in": "formData", "description": "EDIT Only, SourceId=2- SQL clause for how this dataSet should be ordered", "required": false, "type": "string" }, { "name": "useOrderingClause", "in": "formData", "description": "EDIT Only, SourceId=2 - flag (0,1) Use advanced order clause - set to 1 if ordering is provided", "required": false, "type": "integer" }, { "name": "useFilteringClause", "in": "formData", "description": "EDIT Only, SourceId=2 - flag (0,1) Use advanced filter clause - set to 1 if filter is provided", "required": false, "type": "integer" }, { "name": "randomiseItems", "in": "formData", "description": "A flag (0, 1), whether to randomise the feed", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/twitter/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Twitter Widget", "description": "Add a new Twitter Widget to the specified playlist", "operationId": "WidgetTwitterAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Twitter widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "searchTerm", "in": "formData", "description": "Twitter search term, you can test your search term in twitter.com search box first", "required": true, "type": "string" }, { "name": "language", "in": "formData", "description": "Language in which tweets should be returned", "required": false, "type": "string" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind ", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal)", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "noTweetsMessage", "in": "formData", "description": "A message to display when there are no tweets returned by the search query", "required": false, "type": "string" }, { "name": "dateFormat", "in": "formData", "description": "The format to apply to all dates returned by he widget", "required": false, "type": "string" }, { "name": "resultType", "in": "formData", "description": "1 - Mixed, 2 -Recent 3 - Popular, Recent shows only recent tweets, Popular the most popular tweets and Mixed included both popular and recent", "required": false, "type": "string" }, { "name": "tweetDistance", "in": "formData", "description": "Distance in miles that the tweets should be returned from. Set 0 for no restrictions", "required": false, "type": "integer" }, { "name": "tweetCount", "in": "formData", "description": "The number of tweets to return", "required": false, "type": "integer" }, { "name": "removeUrls", "in": "formData", "description": "Flag (0, 1) Should the URLs be removed from the tweet text?", "required": false, "type": "integer" }, { "name": "removeMentions", "in": "formData", "description": "Flag (0, 1) Should mentions (@someone) be removed from the tweet text?", "required": false, "type": "integer" }, { "name": "removeHashtags", "in": "formData", "description": "Flag (0, 1) Should the hashtags (#something) be removed from the tweet text", "required": false, "type": "integer" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "durationIsPerItem", "in": "formData", "description": "A flag (0, 1), The duration specified is per page/item, otherwise the widget duration is divided between the number of pages/items", "required": false, "type": "integer" }, { "name": "itemsPerPage", "in": "formData", "description": "EDIT Only - When in single mode, how many items per page should be shown", "required": false, "type": "integer" }, { "name": "templateId", "in": "formData", "description": "Use pre-configured templates, available options: full-timeline-np, full-timeline, tweet-only, tweet-with-profileimage-left, tweet-with-profileimage-right, tweet-1, tweet-2, tweet-4. tweet-6NP, tweet-6PL, tweet-7, tweet-8", "required": false, "type": "string" }, { "name": "overrideTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use templateId or set to 1 and provide whole template in the next parameters", "required": false, "type": "integer" }, { "name": "widgetOriginalWidth", "in": "formData", "description": "This is the intended Width of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "widgetOriginalHeight", "in": "formData", "description": "This is the intended Height of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "widgetOriginalPadding", "in": "formData", "description": "This is the intended Padding of the template and is used to scale the Widget within it's region when the template is applied, Pass only with overrideTemplate set to 1", "required": false, "type": "integer" }, { "name": "resultContent", "in": "formData", "description": "Intended content Type, available Options: 0 - All Tweets 1 - Tweets with the text only content 2 - Tweets with the text and image content. Pass only with overrideTemplate set to 1", "required": false, "type": "string" }, { "name": "template", "in": "formData", "description": "Main template, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "styleSheet", "in": "formData", "description": "Optional StyleSheet Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" }, { "name": "javaScript", "in": "formData", "description": "Optional JavaScript, Pass only with overrideTemplate set to 1 ", "required": false, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/twittermetro/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Twitter Metro Widget", "description": "Add a new Twitter Metro Widget to the specified playlist", "operationId": "WidgetTwitterMetroAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Twitter Metro widget", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "searchTerm", "in": "formData", "description": "Twitter search term, you can test your search term in twitter.com search box first", "required": true, "type": "string" }, { "name": "language", "in": "formData", "description": "Language in which tweets should be returned", "required": false, "type": "string" }, { "name": "effect", "in": "formData", "description": "Effect that will be used to transitions between items, available options: fade, fadeout, scrollVert, scollHorz, flipVert, flipHorz, shuffle, tileSlide, tileBlind ", "required": false, "type": "string" }, { "name": "speed", "in": "formData", "description": "The transition speed of the selected effect in milliseconds (1000 = normal)", "required": false, "type": "integer" }, { "name": "backgroundColor", "in": "formData", "description": "A HEX color to use as the background color of this widget", "required": false, "type": "string" }, { "name": "noTweetsMessage", "in": "formData", "description": "A message to display when there are no tweets returned by the search query", "required": false, "type": "string" }, { "name": "dateFormat", "in": "formData", "description": "The format to apply to all dates returned by he widget", "required": false, "type": "string" }, { "name": "resultType", "in": "formData", "description": "1 - Mixed, 2 -Recent 3 - Popular, Recent shows only recent tweets, Popular the most popular tweets and Mixed included both popular and recent", "required": false, "type": "string" }, { "name": "tweetDistance", "in": "formData", "description": "Distance in miles that the tweets should be returned from. Set 0 for no restrictions", "required": false, "type": "integer" }, { "name": "tweetCount", "in": "formData", "description": "The number of tweets to return", "required": false, "type": "integer" }, { "name": "removeUrls", "in": "formData", "description": "Flag (0, 1) Should the URLs be removed from the tweet text?", "required": false, "type": "integer" }, { "name": "removeMentions", "in": "formData", "description": "Flag (0, 1) Should mentions (@someone) be removed from the tweet text?", "required": false, "type": "integer" }, { "name": "removeHashtags", "in": "formData", "description": "Flag (0, 1) Should the hashtags (#something) be removed from the tweet text", "required": false, "type": "integer" }, { "name": "updateInterval", "in": "formData", "description": "Update interval in minutes, should be kept as high as possible, if data change once per hour, this should be set to 60", "required": false, "type": "integer" }, { "name": "colorTemplateId", "in": "formData", "description": "Use pre-configured templates, available options: default, full, gray, light, soft, vivid", "required": false, "type": "string" }, { "name": "overrideColorTemplate", "in": "formData", "description": "flag (0, 1) set to 0 and use colorTemplateId or set to 1 and provide colours to use in templateColours parameter", "required": false, "type": "integer" }, { "name": "templateColours", "in": "formData", "description": "Provide a string of new HEX colour codes to use, separated by |, for example: #e0d2c8|#5e411d|#fccf12|#82ff00|#64bae8", "required": false, "type": "string" }, { "name": "resultContent", "in": "formData", "description": "Intended content Type, available Options: 0 - All Tweets 1 - Tweets with the text only content 2 - Tweets with the text and image content. Pass only with overrideColorTemplate set to 1", "required": false, "type": "string" }, { "name": "removeRetweets", "in": "formData", "description": "Flag (0, 1) Should retweets be filtered?", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/video/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Parameters for editing existing video on a layout", "description": "Parameters for editing existing video on a layout, for adding new videos, please refer to POST /library documentation", "operationId": "WidgetVideoEdit", "parameters": [ { "name": "name", "in": "formData", "description": "Edit only - Optional Widget Name", "required": false, "type": "string" }, { "name": "useDuration", "in": "formData", "description": "Edit Only - (0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "duration", "in": "formData", "description": "Edit Only - The Widget Duration", "required": false, "type": "integer" }, { "name": "scaleTypeId", "in": "formData", "description": "How should the video be scaled, available options: aspect, stretch", "required": false, "type": "string" }, { "name": "mute", "in": "formData", "description": "Edit only - Flag (0, 1) Should the video be muted?", "required": false, "type": "integer" }, { "name": "loop", "in": "formData", "description": "Edit only - Flag (0, 1) Should the video loop (only for duration > 0 )?", "required": false, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/videoin/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Video In Widget", "description": "Add a new Video In Widget to the specified playlist", "operationId": "WidgetVideoInAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Widget to", "required": true, "type": "integer" }, { "name": "duration", "in": "formData", "description": "The Widget Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "Flag (0, 1) Select only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "sourceId", "in": "formData", "description": "Which device input should be shown? available options: HDMI, RGB, DVI, DP, OPS", "required": true, "type": "string" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } }, "/playlist/widget/webpage/{playlistId}": { "post": { "tags": [ "widget" ], "summary": "Add a Web page Widget", "description": "Add a new Web page Widget to the specified playlist", "operationId": "WidgetWebpageAdd", "parameters": [ { "name": "playlistId", "in": "path", "description": "The playlist ID to add a Web page to", "required": true, "type": "integer" }, { "name": "name", "in": "formData", "description": "Optional Widget Name", "required": false, "type": "string" }, { "name": "duration", "in": "formData", "description": "The Web page Duration", "required": false, "type": "integer" }, { "name": "useDuration", "in": "formData", "description": "(0, 1) Select 1 only if you will provide duration parameter as well", "required": false, "type": "integer" }, { "name": "transparency", "in": "formData", "description": " flag (0,1) should the HTML be shown with a transparent background?", "required": false, "type": "integer" }, { "name": "uri", "in": "formData", "description": " string containing the location (URL) of the web page", "required": true, "type": "string" }, { "name": "scaling", "in": "formData", "description": "For Manual position the percentage to scale the Web page (0-100)", "required": false, "type": "integer" }, { "name": "offsetLeft", "in": "formData", "description": "For Manual position, the starting point from the left in pixels", "required": false, "type": "integer" }, { "name": "offsetTop", "in": "formData", "description": "For Manual position, the starting point from the Top in pixels", "required": false, "type": "integer" }, { "name": "pageWidth", "in": "formData", "description": "For Manual Position and Best Fit, The width of the page - if empty it will use region width", "required": false, "type": "integer" }, { "name": "pageHeight", "in": "formData", "description": "For Manual Position and Best Fit, The height of the page - if empty it will use region height", "required": false, "type": "integer" }, { "name": "modeId", "in": "formData", "description": "The mode option for Web page, 1- Open Natively, 2- Manual Position, 3- Best Ft", "required": true, "type": "integer" } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Widget" }, "headers": { "Location": { "description": "Location of the new widget", "type": "string" } } } } } } }, "definitions": { "LayoutAssignmentArray": { "properties": { "layoutId": { "description": "Model to use for supplying key/value pairs to arrays", "type": "integer" }, "displayOrder": { "description": "Model to use for supplying key/value pairs to arrays", "type": "integer" } } }, "PlaylistWidgetList": { "properties": { "widgetId": { "description": "Widget ID", "type": "integer" }, "position": { "description": "The position in the Playlist", "type": "integer" } } }, "ScheduleCalendarData": { "properties": { "id": { "description": "Event ID", "type": "integer" }, "title": { "description": "Event Title", "type": "string" }, "sameDay": { "description": "Does this event happen only on 1 day", "type": "integer" }, "event": { "$ref": "#/definitions/Schedule" } } }, "StatisticsData": { "properties": { "type": { "type": "string" }, "display": { "type": "string" }, "layout": { "type": "string" }, "media": { "type": "string" }, "numberPlays": { "type": "integer" }, "duration": { "type": "integer" }, "minStart": { "type": "string" }, "maxEnd": { "type": "string" } } }, "Application": { "properties": { "key": { "description": "Application Key", "type": "string" }, "secret": { "description": "Private Secret Key", "type": "string" }, "name": { "description": "Application Name", "type": "string" }, "owner": { "description": "Application Owner", "type": "string" }, "expires": { "description": "Application Session Expiry", "type": "integer" }, "userId": { "description": "The Owner of this Application", "type": "integer" }, "authCode": { "description": "Flag indicating whether to allow the authorizationCode Grant Type", "type": "integer" }, "clientCredentials": { "description": "Flag indicating whether to allow the clientCredentials Grant Type", "type": "integer" } } }, "AuditLog": { "properties": { "logId": { "description": "The Log Id", "type": "integer" }, "logDate": { "description": "The Log Date", "type": "integer" }, "userId": { "description": "The userId of the User that took this action", "type": "integer" }, "message": { "description": "Message describing the action taken", "type": "string" }, "entity": { "description": "The effected entity", "type": "string" }, "entityId": { "description": "The effected entityId", "type": "integer" }, "objectAfter": { "description": "A JSON representation of the object after it was changed", "type": "string" }, "userName": { "description": "The User Name of the User that took this action", "type": "string" } } }, "Campaign": { "properties": { "campaignId": { "description": "The Campaign Id", "type": "integer" }, "ownerId": { "description": "The userId of the User that owns this Campaign", "type": "integer" }, "campaign": { "description": "The name of the Campaign", "type": "string" }, "isLayoutSpecific": { "description": "A 0|1 flag to indicate whether this is a Layout specific Campaign or not.", "type": "integer" }, "numberLayouts": { "description": "The number of Layouts associated with this Campaign", "type": "integer" }, "totalDuration": { "description": "The total duration of the campaign (sum of layout's durations)", "type": "integer" } } }, "Command": { "properties": { "commandId": { "description": "Command Id", "type": "integer" }, "command": { "description": "Command Name", "type": "string" }, "code": { "description": "Unique Code", "type": "string" }, "description": { "description": "Description", "type": "string" }, "userId": { "description": "User Id", "type": "integer" }, "commandString": { "description": "Command String - when child of a Display Profile", "type": "string" }, "validationString": { "description": "Validation String - when child of a Display Profile", "type": "string" } } }, "DataSet": { "properties": { "dataSetId": { "description": "The dataSetId", "type": "integer" }, "dataSet": { "description": "The dataSet Name", "type": "string" }, "description": { "description": "The dataSet description", "type": "string" }, "userId": { "description": "The userId of the User that owns this DataSet", "type": "integer" }, "lastDataEdit": { "description": "Timestamp indicating the date/time this DataSet was edited last", "type": "integer" }, "owner": { "description": "The user name of the User that owns this DataSet", "type": "string" }, "groupsWithPermissions": { "description": "A comma separated list of Groups/Users that have permission to this DataSet", "type": "string" }, "code": { "description": "A code for this Data Set", "type": "string" }, "isLookup": { "description": "Flag to indicate whether this DataSet is a lookup table", "type": "integer" }, "isRemote": { "description": "Flag to indicate whether this DataSet is Remote", "type": "integer" }, "method": { "description": "Method to fetch the Data, can be GET or POST", "type": "string" }, "uri": { "description": "URI to call to fetch Data from. Replacements are {{DATE}}, {{TIME}} and, in case this is a sequencial used DataSet, {{COL.NAME}} where NAME is a ColumnName from the underlying DataSet.", "type": "string" }, "postData": { "description": "Data to send as POST-Data to the remote host with the same Replacements as in the URI.", "type": "string" }, "authentication": { "description": "Authentication method, can be none, digest, basic", "type": "string" }, "username": { "description": "Username to authenticate with", "type": "string" }, "password": { "description": "Corresponding password", "type": "string" }, "refreshRate": { "description": "Time in seconds this DataSet should fetch new Datas from the remote host", "type": "integer" }, "clearRate": { "description": "Time in seconds when this Dataset should be cleared. If here is a lower value than in RefreshRate it will be cleared when the data is refreshed", "type": "integer" }, "runsAfter": { "description": "DataSetID of the DataSet which should be fetched and present before the Data from this DataSet are fetched", "type": "integer" }, "lastSync": { "description": "Last Synchronisation Timestamp", "type": "integer" }, "lastClear": { "description": "Last Clear Timestamp", "type": "integer" }, "dataRoot": { "description": "Root-Element form JSON where the data are stored in", "type": "string" }, "summarize": { "description": "Optional function to use for summarize or count unique fields in a remote request", "type": "string" }, "summarizeField": { "description": "JSON-Element below the Root-Element on which the consolidation should be applied on", "type": "string" } } }, "DataSetColumn": { "properties": { "dataSetColumnId": { "description": "The ID of this DataSetColumn", "type": "integer" }, "dataSetId": { "description": "The ID of the DataSet that this Column belongs to", "type": "integer" }, "heading": { "description": "The Column Heading", "type": "string" }, "dataTypeId": { "description": "The ID of the DataType for this Column", "type": "integer" }, "dataSetColumnTypeId": { "description": "The ID of the ColumnType for this Column", "type": "integer" }, "listContent": { "description": "Comma separated list of valid content for drop down columns", "type": "string" }, "columnOrder": { "description": "The order this column should be displayed", "type": "integer" }, "formula": { "description": "A MySQL formula for this column", "type": "string" }, "dataType": { "description": "The data type for this Column", "type": "string" }, "remoteField": { "description": "The data field of the remote DataSet as a JSON-String", "type": "string" }, "showFilter": { "description": "Does this column show a filter on the data entry page?", "type": "string" }, "showSort": { "description": "Does this column allow a sorting on the data entry page?", "type": "string" }, "dataSetColumnType": { "description": "The column type for this Column", "type": "string" } } }, "DataSetColumnType": { "properties": { "dataSetColumnTypeId": { "description": "The ID for this DataSetColumnType", "type": "integer" }, "dataSetColumnType": { "description": "The name for this DataSetColumnType", "type": "string" } } }, "DataType": { "properties": { "dataTypeId": { "description": "The ID for this DataType", "type": "integer" }, "dataType": { "description": "The Name for this DataType", "type": "string" } } }, "DayPart": { "properties": { "dayPartId": { "description": "The ID of this Daypart", "type": "integer" }, "isAlways": { "description": "A readonly flag determining whether this DayPart is always", "type": "integer" }, "isCustom": { "description": "A readonly flag determining whether this DayPart is custom", "type": "integer" } } }, "Display": { "properties": { "overrideConfig": { "description": "The configuration options that will overwrite Display Profile Config", "type": "array", "items": { "type": "string" } }, "displayId": { "description": "The ID of this Display", "type": "integer" }, "auditingUntil": { "description": "Flag indicating whether this Display is recording Auditing Information from XMDS", "type": "integer" }, "display": { "description": "The Name of this Display", "type": "string" }, "description": { "description": "The Description of this Display", "type": "string" }, "defaultLayoutId": { "description": "The ID of the Default Layout", "type": "integer" }, "license": { "description": "The Display Unique Identifier also called hardware key", "type": "string" }, "licensed": { "description": "A flag indicating whether this Display is licensed or not", "type": "integer" }, "loggedIn": { "description": "A flag indicating whether this Display is currently logged in", "type": "integer" }, "lastAccessed": { "description": "A timestamp in CMS time for the last time the Display accessed XMDS", "type": "integer" }, "incSchedule": { "description": "A flag indicating whether the default layout is interleaved with the Schedule", "type": "integer" }, "emailAlert": { "description": "A flag indicating whether the Display will send email alerts.", "type": "integer" }, "alertTimeout": { "description": "A timeout in seconds for the Display to send email alerts.", "type": "integer" }, "clientAddress": { "description": "The MAC Address of the Display", "type": "string" }, "mediaInventoryStatus": { "description": "The media inventory status of the Display", "type": "integer" }, "macAddress": { "description": "The current Mac Address of the Player", "type": "string" }, "lastChanged": { "description": "A timestamp indicating the last time the Mac Address changed", "type": "integer" }, "numberOfMacAddressChanges": { "description": "A count of Mac Address changes", "type": "integer" }, "lastWakeOnLanCommandSent": { "description": "A timestamp indicating the last time a WOL command was sent", "type": "integer" }, "wakeOnLanEnabled": { "description": "A flag indicating whether Wake On Lan is enabled", "type": "integer" }, "wakeOnLanTime": { "description": "A h:i string indicating the time to send a WOL command", "type": "string" }, "broadCastAddress": { "description": "The broad cast address for this Display", "type": "string" }, "secureOn": { "description": "The secureOn WOL settings for this display.", "type": "string" }, "cidr": { "description": "The CIDR WOL settings for this display", "type": "string" }, "latitude": { "description": "The display Latitude", "type": "number", "format": "double" }, "longitude": { "description": "The display longitude", "type": "number", "format": "double" }, "clientType": { "description": "A string representing the player type", "type": "string" }, "clientVersion": { "description": "A string representing the player version", "type": "string" }, "clientCode": { "description": "A number representing the Player version code", "type": "integer" }, "displayProfileId": { "description": "The display settings profile ID for this Display", "type": "integer" }, "currentLayoutId": { "description": "The current layout ID reported via XMDS", "type": "integer" }, "screenShotRequested": { "description": "A flag indicating that a screen shot should be taken by the Player", "type": "integer" }, "storageAvailableSpace": { "description": "The number of bytes of storage available on the device.", "type": "integer" }, "storageTotalSpace": { "description": "The number of bytes of storage in total on the device", "type": "integer" }, "displayGroupId": { "description": "The ID of the Display Group for this Device", "type": "integer" }, "currentLayout": { "description": "The current layout", "type": "string" }, "defaultLayout": { "description": "The default layout", "type": "string" }, "displayGroups": { "description": "The Display Groups this Display belongs to", "type": "array", "items": { "$ref": "#/definitions/DisplayGroup" } }, "xmrChannel": { "description": "The Player Subscription Channel", "type": "string" }, "xmrPubKey": { "description": "The Player Public Key", "type": "string" }, "lastCommandSuccess": { "description": "The last command success, 0 = failure, 1 = success, 2 = unknown", "type": "integer" }, "deviceName": { "description": "The Device Name for the device hardware associated with this Display", "type": "string" }, "timeZone": { "description": "The Display Timezone, or empty to use the CMS timezone", "type": "string" }, "tags": { "description": "Tags associated with this Display", "type": "array", "items": { "$ref": "#/definitions/Tag" } } } }, "DisplayGroup": { "properties": { "displayGroupId": { "description": "The displayGroup Id", "type": "integer" }, "displayGroup": { "description": "The displayGroup Name", "type": "string" }, "description": { "description": "The displayGroup Description", "type": "string" }, "isDisplaySpecific": { "description": "A flag indicating whether this displayGroup is a single display displayGroup", "type": "integer" }, "isDynamic": { "description": "A flag indicating whether this displayGroup is dynamic", "type": "integer" }, "dynamicCriteria": { "description": "A flag indicating whether this displayGroup is dynamic", "type": "integer" }, "userId": { "description": "The UserId who owns this display group", "type": "integer" }, "tags": { "description": "Tags associated with this DisplayGroup", "type": "array", "items": { "$ref": "#/definitions/Tag" } } } }, "DisplayProfile": { "properties": { "displayProfileId": { "description": "The ID of this Display Profile", "type": "integer" }, "name": { "description": "The name of this Display Profile", "type": "string" }, "type": { "description": "The player type that this Display Profile is for", "type": "string" }, "config": { "description": "The configuration options for this Profile", "type": "array", "items": { "type": "string" } }, "isDefault": { "description": "A flag indicating if this profile should be used as the Default for the client type", "type": "integer" }, "userId": { "description": "The userId of the User that owns this profile", "type": "integer" }, "configDefault": { "description": "The default configuration options for this Profile", "type": "array", "items": { "type": "string" } }, "configTabs": { "description": "Array of tab names to logically group the configuration options", "type": "array", "items": { "type": "string" } } } }, "Help": { "properties": { "helpId": { "description": "The ID of this Help Record", "type": "integer" }, "topic": { "description": "The topic for this Help Record", "type": "string" }, "category": { "description": "The Category for this Help Record", "type": "string" }, "link": { "description": "The Link to the Manual for this Help Record", "type": "string" } } }, "Layout": { "properties": { "layoutId": { "description": "The layoutId", "type": "integer" }, "ownerId": { "description": "The userId of the Layout Owner", "type": "integer" }, "campaignId": { "description": "The id of the Layout's dedicated Campaign", "type": "integer" }, "backgroundImageId": { "description": "The id of the image media set as the background", "type": "integer" }, "schemaVersion": { "description": "The XLF schema version", "type": "integer" }, "layout": { "description": "The name of the Layout", "type": "string" }, "description": { "description": "The description of the Layout", "type": "string" }, "backgroundColor": { "description": "A HEX string representing the Layout background color", "type": "string" }, "createdDt": { "description": "The datetime the Layout was created", "type": "string" }, "modifiedDt": { "description": "The datetime the Layout was last modified", "type": "string" }, "status": { "description": "Flag indicating the Layout status", "type": "integer" }, "retired": { "description": "Flag indicating whether the Layout is retired", "type": "integer" }, "backgroundzIndex": { "description": "The Layer that the background should occupy", "type": "integer" }, "width": { "description": "The Layout Width", "type": "number", "format": "double" }, "height": { "description": "The Layout Height", "type": "number", "format": "double" }, "displayOrder": { "description": "If this Layout has been requested by Campaign, then this is the display order of the Layout within the Campaign", "type": "integer" }, "duration": { "description": "A read-only estimate of this Layout's total duration in seconds. This is equal to the longest region duration and is valid when the layout status is 1 or 2.", "type": "integer" }, "statusMessage": { "description": "A status message detailing any errors with the layout", "type": "string" } } }, "LogEntry": { "properties": { "logId": { "description": "The Log ID", "type": "integer" }, "runNo": { "description": "A unique run number for a set of Log Messages.", "type": "string" }, "logDate": { "description": "A timestamp representing the CMS date this log message occured", "type": "integer" }, "channel": { "description": "The Channel that generated this message. WEB/API/MAINT/TEST", "type": "string" }, "page": { "description": "The requested route", "type": "string" }, "function": { "description": "The request method, GET/POST/PUT/DELETE", "type": "string" }, "message": { "description": "The log message", "type": "string" }, "displayId": { "description": "The display ID this message relates to or NULL for CMS", "type": "integer" }, "type": { "description": "The Log Level", "type": "string" }, "display": { "description": "The display this message relates to or CMS for CMS.", "type": "string" } } }, "Media": { "properties": { "mediaId": { "description": "The Media ID", "type": "integer" }, "ownerId": { "description": "The ID of the User that owns this Media", "type": "integer" }, "parentId": { "description": "The Parent ID of this Media if it has been revised", "type": "integer" }, "name": { "description": "The Name of this Media", "type": "string" }, "mediaType": { "description": "The module type of this Media", "type": "integer" }, "storedAs": { "description": "The file name of the media as stored in the library", "type": "string" }, "fileName": { "description": "The original file name as it was uploaded", "type": "string" }, "tags": { "description": "Tags associated with this Media", "type": "array", "items": { "$ref": "#/definitions/Tag" } }, "fileSize": { "description": "The file size in bytes", "type": "integer" }, "duration": { "description": "The duration to use when assigning this media to a Layout widget", "type": "integer" }, "valid": { "description": "Flag indicating whether this media is valid.", "type": "integer" }, "moduleSystemFile": { "description": "Flag indicating whether this media is a system file or not", "type": "integer" }, "expires": { "description": "Timestamp indicating when this media should expire", "type": "integer" }, "retired": { "description": "Flag indicating whether this media is retired", "type": "integer" }, "isEdited": { "description": "Flag indicating whether this media has been edited and replaced with a newer file", "type": "integer" }, "md5": { "description": "A MD5 checksum of the stored media file", "type": "string" }, "owner": { "description": "The username of the User that owns this media", "type": "string" }, "groupsWithPermissions": { "description": "A comma separated list of groups/users with permissions to this Media", "type": "string" }, "released": { "description": "A flag indicating whether this media has been released", "type": "integer" }, "apiRef": { "description": "An API reference", "type": "string" }, "createdDt": { "description": "The datetime the Media was created", "type": "string" }, "modifiedDt": { "description": "The datetime the Media was last modified", "type": "string" } } }, "Module": { "properties": { "moduleId": { "description": "The ID of this Module", "type": "integer" }, "name": { "description": "Module Name", "type": "string" }, "description": { "description": "Description of the Module", "type": "string" }, "validExtensions": { "description": "A comma separated list of Valid Extensions", "type": "string" }, "imageUri": { "description": "The file uri of an image to represent this Module", "type": "string" }, "type": { "description": "The type code for this module", "type": "string" }, "enabled": { "description": "A flag indicating whether this module is enabled", "type": "integer" }, "regionSpecific": { "description": "A flag indicating whether this module is specific to a Layout or can be uploaded to the Library", "type": "integer" }, "previewEnabled": { "description": "A flag indicating whether the Layout designer should render a preview of this module", "type": "integer" }, "assignable": { "description": "A flag indicating whether the module is assignable to a Layout", "type": "integer" }, "renderAs": { "description": "A flag indicating whether the module should be rendered natively by the Player or via the CMS (native|html)", "type": "string" }, "defaultDuration": { "description": "The default duration for Widgets of this Module when the user has elected to not set a specific duration.", "type": "integer" }, "settings": { "description": "An array of additional module specific settings", "type": "array", "items": { "type": "string" } }, "schemaVersion": { "description": "The schema version of the module", "type": "integer" }, "class": { "description": "Class Name including namespace", "type": "string" }, "viewPath": { "description": "The Twig View path for module specific templates", "type": "string" }, "installName": { "description": "The original installation name of this module.", "type": "string" } } }, "Notification": { "properties": { "notificationId": { "description": "The Notifcation ID", "type": "integer" }, "createdDt": { "description": "Create Date as Unix Timestamp", "type": "integer" }, "releaseDt": { "description": "Release Date as Unix Timestamp", "type": "integer" }, "subject": { "description": "The subject line", "type": "string" }, "body": { "description": "The HTML body of the notification", "type": "string" }, "isEmail": { "description": "Should the notification be emailed", "type": "integer" }, "isInterrupt": { "description": "Should the notification interrupt the CMS UI on navigate/login", "type": "integer" }, "isSystem": { "description": "Flag for system notification", "type": "integer" }, "userId": { "description": "The Owner User Id", "type": "integer" }, "userGroups": { "description": "User Group Notifications associated with this notification", "type": "array", "items": { "$ref": "#/definitions/UserGroup" } }, "displayGroups": { "description": "Display Groups associated with this notification", "type": "array", "items": { "$ref": "#/definitions/DisplayGroup" } } } }, "Page": { "properties": { "pageId": { "description": "The ID of the Page", "type": "integer" }, "name": { "description": "A code name for the page", "type": "string" }, "title": { "description": "A user friendly title for this page", "type": "string" }, "asHome": { "description": "Flag indicating if the page can be used as a homepage", "type": "integer" } } }, "Permission": { "properties": { "permissionId": { "description": "The ID of this Permission Record", "type": "integer" }, "entityId": { "description": "The Entity ID that this Permission refers to", "type": "integer" }, "groupId": { "description": "The User Group ID that this permission refers to", "type": "integer" }, "objectId": { "description": "The object ID that this permission refers to", "type": "integer" }, "isUser": { "description": "A flag indicating whether the groupId refers to a user specific group", "type": "integer" }, "entity": { "description": "The entity name that this refers to", "type": "string" }, "objectIdString": { "description": "Legacy for when the Object ID is a string", "type": "string" }, "group": { "description": "The group name that this refers to", "type": "string" }, "view": { "description": "A flag indicating whether view permission is granted", "type": "integer" }, "edit": { "description": "A flag indicating whether edit permission is granted", "type": "integer" }, "delete": { "description": "A flag indicating whether delete permission is granted", "type": "integer" }, "modifyPermissions": { "description": "A flag indicating whether modify permission permission is granted.", "type": "integer" } } }, "PlayerVersion": { "properties": { "versionId": { "description": "Version ID", "type": "integer" }, "type": { "description": "Player type", "type": "string" }, "version": { "description": "Version number", "type": "string" }, "code": { "description": "Code number", "type": "integer" }, "groupsWithPermissions": { "description": "A comma separated list of groups/users with permissions to this Media", "type": "string" }, "mediaId": { "description": "The Media ID", "type": "integer" }, "playerShowVersion": { "description": "Player version to show", "type": "string" }, "originalFileName": { "description": "Original name of the uploaded installer file", "type": "string" }, "storedAs": { "description": "Stored As", "type": "string" } } }, "Playlist": { "properties": { "playlistId": { "description": "The ID of this Playlist", "type": "integer" }, "ownerId": { "description": "The userId of the User that owns this Playlist", "type": "integer" }, "name": { "description": "The Name of the Playlist", "type": "string" }, "tags": { "description": "An array of Tags", "type": "array", "items": { "$ref": "#/definitions/Tag" } }, "regions": { "description": "An array of Regions this Playlist is assigned to", "type": "array", "items": { "$ref": "#/definitions/Region" } }, "widgets": { "description": "An array of Widgets assigned to this Playlist", "type": "array", "items": { "$ref": "#/definitions/Widget" } }, "permissions": { "description": "An array of permissions", "type": "array", "items": { "$ref": "#/definitions/Permission" } }, "displayOrder": { "description": "The display order of the Playlist when assigned to a Region", "type": "integer" } } }, "Region": { "properties": { "regionId": { "description": "The ID of this region", "type": "integer" }, "layoutId": { "description": "The Layout ID this region belongs to", "type": "integer" }, "ownerId": { "description": "The userId of the User that owns this Region", "type": "integer" }, "name": { "description": "The name of this Region", "type": "string" }, "width": { "description": "Width of the region", "type": "number", "format": "double" }, "height": { "description": "Height of the Region", "type": "number", "format": "double" }, "top": { "description": "The top coordinate of the Region", "type": "number", "format": "double" }, "left": { "description": "The left coordinate of the Region", "type": "number", "format": "double" }, "zIndex": { "description": "The z-index of the Region to control Layering", "type": "integer" }, "playlists": { "description": "An array of Playlists assigned", "type": "array", "items": { "$ref": "#/definitions/Playlist" } }, "regionOptions": { "description": "An array of Region Options", "type": "array", "items": { "$ref": "#/definitions/RegionOption" } }, "permissions": { "description": "An array of Permissions", "type": "array", "items": { "$ref": "#/definitions/Permission" } }, "displayOrder": { "description": "When linked from a Playlist, what is the display order of that link", "type": "integer" }, "duration": { "description": "A read-only estimate of this Regions's total duration in seconds. This is valid when the parent layout status is 1 or 2.", "type": "integer" } } }, "RegionOption": { "properties": { "regionId": { "description": "The regionId that this Option applies to", "type": "integer" }, "option": { "description": "The option name", "type": "string" }, "value": { "description": "The option value", "type": "string" } } }, "Resolution": { "properties": { "resolutionId": { "description": "The ID of this Resolution", "type": "integer" }, "resolution": { "description": "The resolution name", "type": "string" }, "width": { "description": "The display width of the resolution", "type": "number", "format": "double" }, "height": { "description": "The display height of the resolution", "type": "number", "format": "double" }, "designerWidth": { "description": "The designer width of the resolution", "type": "number", "format": "double" }, "designerHeight": { "description": "The designer height of the resolution", "type": "number", "format": "double" }, "version": { "description": "The layout schema version", "type": "integer" }, "enabled": { "description": "A flag indicating whether this resolution is enabled or not", "type": "integer" }, "userId": { "description": "The userId who owns this Resolution", "type": "integer" } } }, "Schedule": { "properties": { "eventId": { "description": "The ID of this Event", "type": "integer" }, "eventTypeId": { "description": "The Event Type ID", "type": "integer" }, "campaignId": { "description": "The CampaignID this event is for", "type": "integer" }, "commandId": { "description": "The CommandId this event is for", "type": "integer" }, "displayGroups": { "description": "Display Groups assigned to this Scheduled Event.", "type": "array", "items": { "$ref": "#/definitions/DisplayGroup" } }, "userId": { "description": "The userId that owns this event.", "type": "integer" }, "fromDt": { "description": "A Unix timestamp representing the from date of this event in CMS time.", "type": "integer" }, "toDt": { "description": "A Unix timestamp representing the to date of this event in CMS time.", "type": "integer" }, "isPriority": { "description": "Integer indicating the event priority.", "type": "integer" }, "displayOrder": { "description": "The display order for this event.", "type": "integer" }, "recurrenceType": { "description": "If this event recurs when what is the recurrence period.", "type": "string", "enum": [ "None", "Minute", "Hour", "Day", "Week", "Month", "Year" ] }, "recurrenceDetail": { "description": "If this event recurs when what is the recurrence frequency.", "type": "integer" }, "recurrenceRange": { "description": "A Unix timestamp indicating the end time of the recurring events.", "type": "integer" }, "recurrenceRepeatsOn": { "description": "Recurrence repeats on days - 0 to 7 where 0 is a monday", "type": "string" }, "campaign": { "description": "The Campaign/Layout Name", "type": "string", "readOnly": true }, "command": { "description": "The Command Name", "type": "string", "readOnly": true }, "dayPartId": { "description": "The Day Part Id", "type": "integer" }, "isAlways": { "description": "Is this event an always on event?", "type": "integer" }, "isCustom": { "description": "Does this event have custom from/to date times?", "type": "integer" }, "syncEvent": { "description": "Flag indicating whether the event should be synchronised across displays", "type": "integer" }, "syncTimezone": { "description": "Flag indicating whether the event will sync to the Display timezone", "type": "integer" } } }, "Tag": { "properties": { "tagId": { "description": "The Tag ID", "type": "integer" }, "tag": { "description": "The Tag Name", "type": "string" }, "layoutIds": { "description": "An array of layoutIDs with this Tag", "type": "array", "items": { "type": "integer" } }, "campaignIds": { "description": "An array of campaignIDs with this Tag", "type": "array", "items": { "type": "integer" } }, "mediaIds": { "description": "An array of mediaIds with this Tag", "type": "array", "items": { "type": "integer" } }, "displayGroupIds": { "description": "An array of displayGroupIds with this Tag", "type": "array", "items": { "type": "integer" } } } }, "Transition": { "properties": { "transitionId": { "description": "The transition ID", "type": "integer" }, "transition": { "description": "The transition name", "type": "string" }, "code": { "description": "Code for transition", "type": "string" }, "hasDirection": { "description": "Flag indicating whether this is a directional transition", "type": "integer" }, "hasDuration": { "description": "Flag indicating whether this transition has a duration option", "type": "integer" }, "availableAsIn": { "description": "Flag indicating whether this transition should be available for IN assignments", "type": "integer" }, "availableAsOut": { "description": "Flag indicating whether this transition should be available for OUT assignments", "type": "integer" } } }, "User": { "properties": { "userId": { "description": "The ID of this User", "type": "integer" }, "userName": { "description": "The user name", "type": "string" }, "userTypeId": { "description": "The user type ID", "type": "integer" }, "loggedIn": { "description": "Flag indicating whether this user is logged in or not", "type": "integer" }, "email": { "description": "Email address of the user used for email alerts", "type": "string" }, "homePageId": { "description": "The pageId of the Homepage for this User", "type": "integer" }, "lastAccessed": { "description": "A timestamp indicating the time the user last logged into the CMS", "type": "integer" }, "newUserWizard": { "description": "A flag indicating whether this user has see the new user wizard", "type": "integer" }, "retired": { "description": "A flag indicating whether the user is retired", "type": "integer" }, "isPasswordChangeRequired": { "description": "A flag indicating whether password change should be forced for this user", "type": "integer" }, "groupId": { "description": "The users user group ID", "type": "integer" }, "group": { "description": "The users group name", "type": "integer" }, "libraryQuota": { "description": "The users library quota in bytes", "type": "integer" }, "firstName": { "description": "First Name", "type": "string" }, "lastName": { "description": "Last Name", "type": "string" }, "phone": { "description": "Phone Number", "type": "string" }, "ref1": { "description": "Reference field 1", "type": "string" }, "ref2": { "description": "Reference field 2", "type": "string" }, "ref3": { "description": "Reference field 3", "type": "string" }, "ref4": { "description": "Reference field 4", "type": "string" }, "ref5": { "description": "Reference field 5", "type": "string" }, "groups": { "description": "An array of user groups this user is assigned to", "type": "array", "items": { "$ref": "#/definitions/UserGroup" } }, "campaigns": { "description": "An array of Campaigns for this User", "type": "array", "items": { "$ref": "#/definitions/Campaign" } }, "layouts": { "description": "An array of Layouts for this User", "type": "array", "items": { "$ref": "#/definitions/Layout" } }, "media": { "description": "An array of Media for this user", "type": "array", "items": { "$ref": "#/definitions/Media" } }, "events": { "description": "An array of Scheduled Events for this User", "type": "array", "items": { "$ref": "#/definitions/Schedule" } }, "homePage": { "description": "The name of home page", "type": "string" }, "isSystemNotification": { "description": "Does this Group receive system notifications.", "type": "integer" }, "isDisplayNotification": { "description": "Does this Group receive system notifications.", "type": "integer" } } }, "UserGroup": { "properties": { "groupId": { "description": "The Group ID", "type": "integer" }, "group": { "description": "The group name", "type": "string" }, "isUserSpecific": { "description": "A flag indicating whether this is a user specific group or not", "type": "integer" }, "isEveryone": { "description": "A flag indicating the special everyone group", "type": "integer" }, "libraryQuota": { "description": "This users library quota in bytes. 0 = unlimited", "type": "integer" }, "isSystemNotification": { "description": "Does this Group receive system notifications.", "type": "integer" }, "isDisplayNotification": { "description": "Does this Group receive display notifications.", "type": "integer" } } }, "UserNotification": { "properties": { "userId": { "description": "The User Id", "type": "integer" }, "notificationId": { "description": "The Notification Id", "type": "integer" }, "releaseDt": { "description": "Release Date expressed as Unix Timestamp", "type": "integer" }, "readDt": { "description": "Read Date expressed as Unix Timestamp", "type": "integer" }, "emailDt": { "description": "Email Date expressed as Unix Timestamp", "type": "integer" }, "read": { "description": "A flag indicating whether to show as read or not", "type": "integer" }, "subject": { "description": "The subject", "type": "string" }, "body": { "description": "The body", "type": "string" }, "isInterrupt": { "description": "Should the notification interrupt the CMS UI on navigate/login", "type": "integer" }, "isSystem": { "description": "Flag for system notification", "type": "integer" } } }, "UserOption": { "properties": { "userId": { "description": "The userId that this Option applies to", "type": "integer" }, "option": { "description": "The option name", "type": "string" }, "value": { "description": "The option value", "type": "string" } } }, "Widget": { "properties": { "widgetId": { "description": "The Widget ID", "type": "integer" }, "playlistId": { "description": "The ID of the Playlist this Widget belongs to", "type": "integer" }, "ownerId": { "description": "The ID of the User that owns this Widget", "type": "integer" }, "type": { "description": "The Module Type Code", "type": "string" }, "duration": { "description": "The duration in seconds this widget should be shown", "type": "integer" }, "displayOrder": { "description": "The display order of this widget", "type": "integer" }, "useDuration": { "description": "Flag indicating if this widget has a duration that should be used", "type": "integer" }, "calculatedDuration": { "description": "Calculated Duration of this widget after taking into account the useDuration flag", "type": "integer" }, "createdDt": { "description": "The datetime the Layout was created", "type": "string" }, "modifiedDt": { "description": "The datetime the Layout was last modified", "type": "string" }, "widgetOptions": { "description": "An array of Widget Options", "type": "array", "items": { "$ref": "#/definitions/WidgetOption" } }, "mediaIds": { "description": "An array of MediaIds this widget is linked to", "type": "array", "items": { "type": "integer" } }, "audio": { "description": "An array of Audio MediaIds this widget is linked to", "type": "array", "items": { "$ref": "#/definitions/WidgetAudio" } }, "permissions": { "description": "An array of permissions for this widget", "type": "array", "items": { "$ref": "#/definitions/Permission" } }, "module": { "description": "The Module Object for this Widget", "$ref": "#/definitions/ModuleWidget" }, "playlist": { "description": "The name of the Playlist this Widget is on", "type": "string" } } }, "WidgetAudio": { "properties": { "widgetId": { "description": "The Widget Id", "type": "integer" }, "mediaId": { "description": "The Media Id", "type": "integer" }, "volume": { "description": "The percentage volume", "type": "integer" }, "loop": { "description": "Flag indicating whether to loop", "type": "integer" } } }, "WidgetOption": { "properties": { "widgetId": { "description": "The Widget ID that this Option belongs to", "type": "integer" }, "type": { "description": "The option type, either attrib or raw", "type": "string" }, "option": { "description": "The option name", "type": "string" }, "value": { "description": "The option value", "type": "string" } } }, "ModuleWidget": { "properties": { "widget": { "description": "The Widget", "$ref": "#/definitions/Widget" } } } }, "responses": { "200": { "description": "successful operation" } }, "securityDefinitions": { "auth": { "type": "oauth2", "flow": "accessCode", "authorizationUrl": "/api/authorize", "tokenUrl": "/api/authorize/access_token", "scopes": { "read:all": "read access", "write:all": "write access" } } }, "security": [ { "auth": [ "write:all", "read:all" ] } ], "tags": [ { "name": "misc", "description": "Miscellaneous" }, { "name": "schedule", "description": "Schedule" }, { "name": "notification", "description": "Notifications" }, { "name": "layout", "description": "Layouts" }, { "name": "playlist", "description": "Playlists" }, { "name": "widget", "description": "Widgets" }, { "name": "campaign", "description": "Campaigns" }, { "name": "template", "description": "Templates" }, { "name": "resolution", "description": "Resolutions" }, { "name": "library", "description": "Library" }, { "name": "display", "description": "Displays" }, { "name": "displayGroup", "description": "Display Groups" }, { "name": "displayprofile", "description": "Display Settings" }, { "name": "dataset", "description": "DataSets" }, { "name": "statistics", "description": "Statistics" }, { "name": "log", "description": "Logs" }, { "name": "user", "description": "Users" }, { "name": "usergroup", "description": "User Groups" }, { "name": "module", "description": "Modules and Widgets" }, { "name": "command", "description": "Commands" }, { "name": "dayPart", "description": "Dayparting" }, { "name": "task", "description": "Tasks" }, { "name": "version", "description": "Player Versions" } ], "externalDocs": { "description": "Manual", "url": "http://xibo.org.uk/manual" } }