{
    "swagger": "2.0",
    "info": {
        "title": "Xibo API",
        "description": "Xibo CMS API.\r\n       Using HTTP formData requests.\r\n       All PUT requests require Content-Type:application/x-www-form-urlencoded header.",
        "termsOfService": "https://xibosignage.com/legal",
        "contact": {
            "email": "info@xibo.org.uk"
        },
        "license": {
            "name": "AGPLv3 or later",
            "url": "http://www.gnu.org/licenses/"
        },
        "version": "4.0"
    },
    "basePath": "/api",
    "schemes": [
        "http"
    ],
    "produces": [
        "application/json"
    ],
    "paths": {
        "/action": {
            "get": {
                "tags": [
                    "action"
                ],
                "summary": "Search Actions",
                "description": "Search all Actions this user has access to",
                "operationId": "actionSearch",
                "parameters": [
                    {
                        "name": "actionId",
                        "in": "query",
                        "description": "Filter by Action Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "ownerId",
                        "in": "query",
                        "description": "Filter by Owner Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "triggerType",
                        "in": "query",
                        "description": "Filter by Action trigger type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "triggerCode",
                        "in": "query",
                        "description": "Filter by Action trigger code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionType",
                        "in": "query",
                        "description": "Filter by Action type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "source",
                        "in": "query",
                        "description": "Filter by Action source",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "sourceId",
                        "in": "query",
                        "description": "Filter by Action source Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "target",
                        "in": "query",
                        "description": "Filter by Action target",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "targetId",
                        "in": "query",
                        "description": "Filter by Action target Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "layoutId",
                        "in": "query",
                        "description": "Return all actions pertaining to a particular Layout",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "sourceOrTargetId",
                        "in": "query",
                        "description": "Return all actions related to a source or target with the provided ID",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Action"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "action"
                ],
                "summary": "Add Action",
                "description": "Add a new Action",
                "operationId": "actionAdd",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "formData",
                        "description": "LayoutId associted with this Action",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "actionType",
                        "in": "formData",
                        "description": "Action type, next, previous, navLayout, navWidget",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "target",
                        "in": "formData",
                        "description": "Target for this action, screen or region",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "targetId",
                        "in": "formData",
                        "description": "The id of the target for this action - regionId if the target is set to region",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "source",
                        "in": "formData",
                        "description": "Source for this action layout, region or widget",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "sourceId",
                        "in": "formData",
                        "description": "The id of the source object, layoutId, regionId or widgetId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "triggerType",
                        "in": "formData",
                        "description": "Action trigger type, touch or webhook",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "triggerCode",
                        "in": "formData",
                        "description": "Action trigger code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "widgetId",
                        "in": "formData",
                        "description": "For navWidget actionType, the WidgetId to navigate to",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "layoutCode",
                        "in": "formData",
                        "description": "For navLayout, the Layout Code identifier to navigate to",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Action"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/action/{actionId}": {
            "delete": {
                "tags": [
                    "action"
                ],
                "summary": "Delete Action",
                "description": "Delete an existing Action",
                "operationId": "actionDelete",
                "parameters": [
                    {
                        "name": "actionId",
                        "in": "path",
                        "description": "The Action ID to Delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/campaign": {
            "get": {
                "tags": [
                    "campaign"
                ],
                "summary": "Search Campaigns",
                "description": "Search all Campaigns this user has access to",
                "operationId": "campaignSearch",
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "query",
                        "description": "Filter by Campaign Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by Tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "hasLayouts",
                        "in": "query",
                        "description": "Filter by has layouts",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isLayoutSpecific",
                        "in": "query",
                        "description": "Filter by whether this Campaign is specific to a Layout or User added",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "retired",
                        "in": "query",
                        "description": "Filter by retired",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "totalDuration",
                        "in": "query",
                        "description": "Should we total the duration?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Embed related data such as layouts, permissions, tags and events",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "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": "type",
                        "in": "formData",
                        "description": "Type of campaign, either list|ad",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Name for this Campaign",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "layoutIds",
                        "in": "formData",
                        "description": "An array of layoutIds to assign to this Campaign, in order.",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "cyclePlaybackEnabled",
                        "in": "formData",
                        "description": "When cycle based playback is enabled only 1 Layout from this Campaign will be played each time\r\n     * it is in a Schedule loop. The same Layout will be shown until the 'Play count' is achieved.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "playCount",
                        "in": "formData",
                        "description": "In cycle based playback, how many plays should each Layout have before moving on?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "listPlayOrder",
                        "in": "formData",
                        "description": "In layout list, how should campaigns in the schedule with the same play order be played?",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "targetType",
                        "in": "formData",
                        "description": "For ad campaigns, how do we measure the target? plays|budget|imp",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "target",
                        "in": "formData",
                        "description": "For ad campaigns, what is the target count for playback over the entire campaign",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "manageLayouts",
                        "in": "formData",
                        "description": "Flag indicating whether to manage layouts or not. Default to no.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "layoutIds",
                        "in": "formData",
                        "description": "An array of layoutIds to assign to this Campaign, in order.",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "cyclePlaybackEnabled",
                        "in": "formData",
                        "description": "When cycle based playback is enabled only 1 Layout from this Campaign will be played each time it is in a Schedule loop. The same Layout will be shown until the 'Play count' is achieved.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "playCount",
                        "in": "formData",
                        "description": "In cycle based playback, how many plays should each Layout have before moving on?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "listPlayOrder",
                        "in": "formData",
                        "description": "In layout list, how should campaigns in the schedule with the same play order be played?",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "targetType",
                        "in": "formData",
                        "description": "For ad campaigns, how do we measure the target? plays|budget|imp",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "target",
                        "in": "formData",
                        "description": "For ad campaigns, what is the target count for playback over the entire campaign",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "startDt",
                        "in": "formData",
                        "description": "For ad campaigns, what is the start date",
                        "required": false,
                        "type": "string",
                        "format": "date-time"
                    },
                    {
                        "name": "endDt",
                        "in": "formData",
                        "description": "For ad campaigns, what is the start date",
                        "required": false,
                        "type": "string",
                        "format": "date-time"
                    },
                    {
                        "name": "displayGroupIds[]",
                        "in": "formData",
                        "description": "For ad campaigns, which display groups should the campaign be run on?",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "ref1",
                        "in": "formData",
                        "description": "An optional reference field",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ref2",
                        "in": "formData",
                        "description": "An optional reference field",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ref3",
                        "in": "formData",
                        "description": "An optional reference field",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ref4",
                        "in": "formData",
                        "description": "An optional reference field",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ref5",
                        "in": "formData",
                        "description": "An optional reference field",
                        "required": false,
                        "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 Layout",
                "description": "Assign a Layout to a Campaign. Please note that as of v3.0.0 this API no longer accepts multiple layoutIds.",
                "operationId": "campaignAssignLayout",
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "path",
                        "description": "The Campaign ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "layoutId",
                        "in": "formData",
                        "description": "Layout ID to Assign: Please note that as of v3.0.0 this API no longer accepts multiple layoutIds.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "daysOfWeek[]",
                        "in": "formData",
                        "description": "Ad campaigns: restrict this to certain days of the week (iso week)",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "dayPartId",
                        "in": "formData",
                        "description": "Ad campaigns: restrict this to a day part",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "geoFence",
                        "in": "formData",
                        "description": "Ad campaigns: restrict this to a geofence",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/campaign/layout/remove/{campaignId}": {
            "delete": {
                "tags": [
                    "campaign"
                ],
                "summary": "Remove Layout",
                "description": "Remove a Layout from a Campaign.",
                "operationId": "campaignAssignLayout",
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "path",
                        "description": "The Campaign ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "layoutId",
                        "in": "formData",
                        "description": "Layout ID to remove",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "The display order. Omit to remove all occurences of the layout",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/campaign/{id}/selectfolder": {
            "put": {
                "tags": [
                    "campaign"
                ],
                "summary": "Campaign Select folder",
                "description": "Select Folder for Campaign, can also be used with Layout specific Campaign ID",
                "operationId": "campaignSelectFolder",
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "path",
                        "description": "The Campaign ID or Layout specific Campaign ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Campaign"
                        }
                    }
                }
            }
        },
        "/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": "query",
                        "description": "Filter by Command Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "command",
                        "in": "query",
                        "description": "Filter by Command Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "Filter by Command Code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "useRegexForName",
                        "in": "query",
                        "description": "Flag (0,1). When filtering by multiple commands in command filter, should we use regex?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "useRegexForCode",
                        "in": "query",
                        "description": "Flag (0,1). When filtering by multiple codes in code filter, should we use regex?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperatorName",
                        "in": "query",
                        "description": "When filtering by multiple commands in command filter,\r\n     * which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "logicalOperatorCode",
                        "in": "query",
                        "description": "When filtering by multiple codes in code filter,\r\n     * which logical operator should be used? AND|OR",
                        "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"
                    },
                    {
                        "name": "commandString",
                        "in": "formData",
                        "description": "The Command String for this Command. Can be overridden on Display Settings.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "validationString",
                        "in": "formData",
                        "description": "The Validation String for this Command. Can be overridden on Display Settings.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "availableOn",
                        "in": "formData",
                        "description": "An array of Player types this Command is available on, empty for all.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "createAlertOn",
                        "in": "formData",
                        "description": "On command execution, when should a Display alert be created?\r\n     * success, failure, always or never",
                        "required": false,
                        "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"
                    },
                    {
                        "name": "commandString",
                        "in": "formData",
                        "description": "The Command String for this Command. Can be overridden on Display Settings.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "validationString",
                        "in": "formData",
                        "description": "The Validation String for this Command. Can be overridden on Display Settings.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "availableOn",
                        "in": "formData",
                        "description": "An array of Player types this Command is available on, empty for all.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "createAlertOn",
                        "in": "formData",
                        "description": "On command execution, when should a Display alert be created?\r\n     * success, failure, always or never",
                        "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": "query",
                        "description": "Filter by DataSet Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dataSet",
                        "in": "query",
                        "description": "Filter by DataSet Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "Filter by DataSet Code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isRealTime",
                        "in": "query",
                        "description": "Filter by real time",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "userId",
                        "in": "query",
                        "description": "Filter by user Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Embed related data such as columns",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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": "isRealTime",
                        "in": "formData",
                        "description": "Is this a real time DataSet?",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataConnectorSource",
                        "in": "formData",
                        "description": "Source of the data connector",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "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": "customHeaders",
                        "in": "formData",
                        "description": "Comma separated string of custom HTTP headers",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userAgent",
                        "in": "formData",
                        "description": "Custom user Agent value",
                        "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": "truncateOnEmpty",
                        "in": "formData",
                        "description": "Should the DataSet data be truncated even if no new data is pulled from the source?",
                        "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"
                    },
                    {
                        "name": "sourceId",
                        "in": "formData",
                        "description": "For remote DataSet, what type data is it? 1 - json, 2 - csv",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "ignoreFirstRow",
                        "in": "formData",
                        "description": "For remote DataSet with sourceId 2 (CSV), should we ignore first row?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "rowLimit",
                        "in": "formData",
                        "description": "For remote DataSet, maximum number of rows this DataSet can hold, if left empty the CMS Setting for DataSet row limit will be used.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "limitPolicy",
                        "in": "formData",
                        "description": "For remote DataSet, what should happen when the DataSet row limit is reached? stop, fifo or truncate",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "csvSeparator",
                        "in": "formData",
                        "description": "Separator that should be used when using Remote DataSets with CSV source, comma will be used by default.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dataConnectorScript",
                        "in": "formData",
                        "description": "If isRealTime then provide a script to connect to the data source",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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": "isRealTime",
                        "in": "formData",
                        "description": "Is this a real time DataSet?",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataConnectorSource",
                        "in": "formData",
                        "description": "Source of the data connector",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "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": "customHeaders",
                        "in": "formData",
                        "description": "Comma separated string of custom HTTP headers",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userAgent",
                        "in": "formData",
                        "description": "Custom user Agent value",
                        "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": "truncateOnEmpty",
                        "in": "formData",
                        "description": "Should the DataSet data be truncated even if no new data is pulled from the source?",
                        "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"
                    },
                    {
                        "name": "sourceId",
                        "in": "formData",
                        "description": "For remote DataSet, what type data is it? 1 - json, 2 - csv",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "ignoreFirstRow",
                        "in": "formData",
                        "description": "For remote DataSet with sourceId 2 (CSV), should we ignore first row?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "rowLimit",
                        "in": "formData",
                        "description": "For remote DataSet, maximum number of rows this DataSet can hold, if left empty the CMS Setting for DataSet row limit will be used.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "limitPolicy",
                        "in": "formData",
                        "description": "For remote DataSet, what should happen when the DataSet row limit is reached? stop, fifo or truncate",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "csvSeparator",
                        "in": "formData",
                        "description": "Separator that should be used when using Remote DataSets with CSV source, comma will be used by default.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dataConnectorScript",
                        "in": "formData",
                        "description": "If isRealTime then provide a script to connect to the data source",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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/dataConnector/{dataSetId}": {
            "put": {
                "tags": [
                    "dataset"
                ],
                "summary": "Edit DataSet Data Connector",
                "description": "Edit a DataSet Data Connector",
                "operationId": "dataSetDataConnectorEdit",
                "parameters": [
                    {
                        "name": "dataSetId",
                        "in": "path",
                        "description": "The DataSet ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataConnectorScript",
                        "in": "formData",
                        "description": "If isRealTime then provide a script to connect to the data source",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DataSet"
                        }
                    }
                }
            }
        },
        "/dataset/{id}/selectfolder": {
            "put": {
                "tags": [
                    "dataSet"
                ],
                "summary": "DataSet Select folder",
                "description": "Select Folder for DataSet",
                "operationId": "dataSetSelectFolder",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The DataSet ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DataSet"
                        }
                    }
                }
            }
        },
        "/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"
                    },
                    {
                        "name": "copyRows",
                        "in": "formData",
                        "description": "Flag whether to copy all the row data from the original dataSet",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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": {
                            "$ref": "#/definitions/importJsonSchema"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/dataset/export/csv/{dataSetId}": {
            "get": {
                "tags": [
                    "dataset"
                ],
                "summary": "Export to CSV",
                "description": "Export DataSet data to a csv file",
                "operationId": "dataSetExportCsv",
                "parameters": [
                    {
                        "name": "dataSetId",
                        "in": "path",
                        "description": "The DataSet ID to export.",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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": "query",
                        "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"
                    },
                    {
                        "name": "tooltip",
                        "in": "formData",
                        "description": "Help text that should be displayed when entering data for this Column.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isRequired",
                        "in": "formData",
                        "description": "Flag indicating whether value must be provided for this Column.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dateFormat",
                        "in": "formData",
                        "description": "PHP date format for the dates in the source of the remote DataSet",
                        "required": false,
                        "type": "string"
                    }
                ],
                "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"
                    },
                    {
                        "name": "tooltip",
                        "in": "formData",
                        "description": "Help text that should be displayed when entering data for this Column.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isRequired",
                        "in": "formData",
                        "description": "Flag indicating whether value must be provided for this Column.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dateFormat",
                        "in": "formData",
                        "description": "PHP date format for the dates in the source of the remote DataSet",
                        "required": false,
                        "type": "string"
                    }
                ],
                "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/DataSetRss"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "dataset"
                ],
                "summary": "Add RSS",
                "description": "Add a RSS to a DataSet",
                "operationId": "dataSetRssAdd",
                "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"
                    }
                }
            },
            "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": "query",
                        "description": "The dayPart ID to Search",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "The name of the dayPart to Search",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "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 Edit",
                "description": "Edit a Daypart",
                "operationId": "dayPartEdit",
                "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"
                    }
                }
            }
        },
        "/displayvenue": {
            "get": {
                "tags": [
                    "displayVenue"
                ],
                "summary": "Get Display Venues",
                "operationId": "displayVenueSearch",
                "responses": {
                    "200": {
                        "description": "a successful response"
                    }
                }
            }
        },
        "/display": {
            "get": {
                "tags": [
                    "display"
                ],
                "summary": "Display Search",
                "description": "Search Displays for this User",
                "operationId": "displaySearch",
                "parameters": [
                    {
                        "name": "displayId",
                        "in": "query",
                        "description": "Filter by Display Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayGroupId",
                        "in": "query",
                        "description": "Filter by DisplayGroup Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "display",
                        "in": "query",
                        "description": "Filter by Display Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "macAddress",
                        "in": "query",
                        "description": "Filter by Mac Address",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "hardwareKey",
                        "in": "query",
                        "description": "Filter by Hardware Key",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "clientVersion",
                        "in": "query",
                        "description": "Filter by Client Version",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "clientType",
                        "in": "query",
                        "description": "Filter by Client Type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "clientCode",
                        "in": "query",
                        "description": "Filter by Client Code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Embed related data, namely displaygroups. A comma separated list of child objects to embed.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "authorised",
                        "in": "query",
                        "description": "Filter by authorised flag",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayProfileId",
                        "in": "query",
                        "description": "Filter by Display Profile",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "mediaInventoryStatus",
                        "in": "query",
                        "description": "Filter by Display Status ( 1 - up to date, 2 - downloading, 3 - Out of date)",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "loggedIn",
                        "in": "query",
                        "description": "Filter by Logged In flag",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "lastAccessed",
                        "in": "query",
                        "description": "Filter by Display Last Accessed date, expects date in Y-m-d H:i:s format",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "xmrRegistered",
                        "in": "query",
                        "description": "Filter by whether XMR is registed (1 or 0)",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isPlayerSupported",
                        "in": "query",
                        "description": "Filter by whether the player is supported (1 or 0)",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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": "languages",
                        "in": "formData",
                        "description": "An array of languages supported in this display location",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "displayProfileId",
                        "in": "formData",
                        "description": "The Display Settings Profile ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayTypeId",
                        "in": "formData",
                        "description": "The Display Type ID of this Display",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "screenSize",
                        "in": "formData",
                        "description": "The screen size of this Display",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "venueId",
                        "in": "formData",
                        "description": "The Venue ID of this Display",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "address",
                        "in": "formData",
                        "description": "The Location Address of this Display",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isMobile",
                        "in": "formData",
                        "description": "Is this Display mobile?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isOutdoor",
                        "in": "formData",
                        "description": "Is this Display Outdoor?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "costPerPlay",
                        "in": "formData",
                        "description": "The Cost Per Play of this Display",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "impressionsPerPlay",
                        "in": "formData",
                        "description": "The Impressions Per Play of this Display",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "customId",
                        "in": "formData",
                        "description": "The custom ID (an Id of any external system) of this Display",
                        "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": "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"
                    },
                    {
                        "name": "teamViewerSerial",
                        "in": "formData",
                        "description": "The TeamViewer serial number for this Display, if applicable",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "webkeySerial",
                        "in": "formData",
                        "description": "The Webkey serial number for this Display, if applicable",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "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"
                    }
                }
            }
        },
        "/display/licenceCheck/{displayId}": {
            "put": {
                "tags": [
                    "display"
                ],
                "summary": "Licence Check",
                "description": "Ask this Player to check its Commercial Licence",
                "operationId": "displayLicenceCheck",
                "parameters": [
                    {
                        "name": "displayId",
                        "in": "path",
                        "description": "The Display ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/display/status/{id}": {
            "get": {
                "tags": [
                    "display"
                ],
                "summary": "Display Status",
                "description": "Get the display status window for this Display.",
                "operationId": "displayStatus",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Display Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/display/purgeAll/{displayId}": {
            "put": {
                "tags": [
                    "display"
                ],
                "summary": "Purge All",
                "description": "Ask this Player to purge all Media from its local storage and request fresh files from CMS.",
                "operationId": "displayPurgeAll",
                "parameters": [
                    {
                        "name": "displayId",
                        "in": "path",
                        "description": "The Display ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/displaygroup": {
            "get": {
                "tags": [
                    "displayGroup"
                ],
                "summary": "Get Display Groups",
                "operationId": "displayGroupSearch",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "query",
                        "description": "Filter by DisplayGroup Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayGroup",
                        "in": "query",
                        "description": "Filter by DisplayGroup Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "displayId",
                        "in": "query",
                        "description": "Filter by DisplayGroups containing a specific display",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "nestedDisplayId",
                        "in": "query",
                        "description": "Filter by DisplayGroups containing a specific display in there nesting",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dynamicCriteria",
                        "in": "query",
                        "description": "Filter by DisplayGroups containing a specific dynamic criteria",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isDisplaySpecific",
                        "in": "query",
                        "description": "Filter by whether the Display Group belongs to a Display or is user created",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "forSchedule",
                        "in": "query",
                        "description": "Should the list be refined for only those groups the User can Schedule against?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "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.\r\n     * A comma separated set of regular expressions to apply",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "logicalOperatorName",
                        "in": "formData",
                        "description": "When filtering by multiple dynamic criteria, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dynamicCriteriaTags",
                        "in": "formData",
                        "description": "The filter criteria for this dynamic group.\r\n     * A comma separated set of regular expressions to apply",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "formData",
                        "description": "When filtering by Tags, should we use exact match?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "formData",
                        "description": "When filtering by Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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.\r\n     * A command separated set of regular expressions to apply",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "logicalOperatorName",
                        "in": "formData",
                        "description": "When filtering by multiple dynamic criteria, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dynamicCriteriaTags",
                        "in": "formData",
                        "description": "The filter criteria for this dynamic group.\r\n     * A comma separated set of regular expressions to apply",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "formData",
                        "description": "When filtering by Tags, should we use exact match?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "formData",
                        "description": "When filtering by Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "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"
                    }
                ],
                "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 a change layout action to the provided Display Group. This will be sent to Displays in that Group via XMR.",
                "operationId": "displayGroupActionChangeLayout",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "This can be either a Display Group or the Display specific Display Group",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "layoutId",
                        "in": "formData",
                        "description": "The ID of the Layout to change to. Either this or a campaignId must be provided.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "campaignId",
                        "in": "formData",
                        "description": "The Layout specific campaignId of the Layout to change to. Either this or a layoutId must be provided.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "duration",
                        "in": "formData",
                        "description": "The duration in seconds for this Layout change to remain in effect, after which normal scheduling is resumed.",
                        "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. Queuing will keep the current change layout action and switch after it is finished. If no active change layout action is present, both options are actioned immediately",
                        "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": "This can be either a Display Group or the Display specific Display Group",
                        "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, you can pass layoutId or layout specific campaignId",
                "operationId": "displayGroupActionOverlayLayout",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "This can be either a Display Group or the Display specific Display Group",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "layoutId",
                        "in": "formData",
                        "description": "The ID of the Layout to change to. Either this or a campaignId must be provided.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "campaignId",
                        "in": "formData",
                        "description": "The Layout specific campaignId of the Layout to change to. Either this or a layoutId must be provided.",
                        "required": false,
                        "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": "Whether to queue or replace with this action. Queuing will keep the current change layout action and switch after it is finished. If no active change layout action is present, both options are actioned immediately",
                        "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"
                    }
                }
            }
        },
        "/displaygroup/{displayGroupId}/copy": {
            "post": {
                "tags": [
                    "displayGroup"
                ],
                "summary": "Copy Display Group",
                "description": "Copy an existing Display Group",
                "operationId": "displayGroupCopy",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "The Display Group ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "displayGroup",
                        "in": "formData",
                        "description": "The name for the copy",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "The description for the copy",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "copyMembers",
                        "in": "formData",
                        "description": "Flag indicating whether to copy all display and display group members",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "copyAssignments",
                        "in": "formData",
                        "description": "Flag indicating whether to copy all layout and media assignments",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "copyTags",
                        "in": "formData",
                        "description": "Flag indicating whether to copy all tags",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DisplayGroup"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/displaygroup/{id}/selectfolder": {
            "put": {
                "tags": [
                    "displayGroup"
                ],
                "summary": "Display Group Select folder",
                "description": "Select Folder for Display Group, can also be used with Display specific Display Group ID",
                "operationId": "displayGroupSelectFolder",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "The Display Group ID or Display specific Display Group ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DisplayGroup"
                        }
                    }
                }
            }
        },
        "/displaygroup/{displayGroupId}/action/triggerWebhook": {
            "post": {
                "tags": [
                    "displayGroup"
                ],
                "summary": "Action: Trigger Web hook",
                "description": "Send the trigger webhook action to this DisplayGroup",
                "operationId": "displayGroupActionTriggerWebhook",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "The display group id",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "triggerCode",
                        "in": "formData",
                        "description": "The trigger code that should be sent to the Player",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/displaygroup/criteria[/{displayGroupId}]": {
            "post": {
                "tags": [
                    "displayGroup"
                ],
                "summary": "Action: Push Criteria Update",
                "description": "Send criteria updates to the specified DisplayGroup or to all displays if displayGroupId is not\r\n     *                  provided.",
                "operationId": "ScheduleCriteriaUpdate",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "The display group id",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "criteriaUpdates",
                        "in": "body",
                        "description": "The criteria updates to send to the Player",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "properties": {
                                    "metric": {
                                        "type": "string"
                                    },
                                    "value": {
                                        "type": "string"
                                    },
                                    "ttl": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Invalid criteria format"
                    }
                }
            }
        },
        "/displayprofile": {
            "get": {
                "tags": [
                    "displayprofile"
                ],
                "summary": "Display Profile Search",
                "description": "Search this users Display Profiles",
                "operationId": "displayProfileSearch",
                "parameters": [
                    {
                        "name": "displayProfileId",
                        "in": "query",
                        "description": "Filter by DisplayProfile Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayProfile",
                        "in": "query",
                        "description": "Filter by DisplayProfile Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter by DisplayProfile Type (windows|android|lg)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "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"
                            }
                        }
                    }
                }
            }
        },
        "/folders": {
            "get": {
                "tags": [
                    "folder"
                ],
                "summary": "Search Folders",
                "description": "Returns JSON representation of the Folder tree",
                "operationId": "folderSearch",
                "parameters": [
                    {
                        "name": "folderId",
                        "in": "path",
                        "description": "Show usage details for the specified Folder Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "gridView",
                        "in": "query",
                        "description": "Flag (0, 1), Show Folders in a standard grid response",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Use with gridView, Filter by Folder Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderName",
                        "in": "query",
                        "description": "Use with gridView, Filter by Folder name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactFolderName",
                        "in": "query",
                        "description": "Use with gridView, Filter by exact Folder name match",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Folder"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "folder"
                ],
                "summary": "Add Folder",
                "description": "Add a new Folder to the specified parent Folder",
                "operationId": "folderAdd",
                "parameters": [
                    {
                        "name": "text",
                        "in": "formData",
                        "description": "Folder Name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "parentId",
                        "in": "formData",
                        "description": "The ID of the parent Folder, if not provided, Folder will be added under Root Folder",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "items": {
                                "$ref": "#/definitions/Folder"
                            }
                        }
                    }
                }
            }
        },
        "/folders/{folderId}": {
            "put": {
                "tags": [
                    "folder"
                ],
                "summary": "Edit Folder",
                "description": "Edit existing Folder",
                "operationId": "folderEdit",
                "parameters": [
                    {
                        "name": "folderId",
                        "in": "path",
                        "description": "Folder ID to edit",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "text",
                        "in": "formData",
                        "description": "Folder Name",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "items": {
                                "$ref": "#/definitions/Folder"
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "folder"
                ],
                "summary": "Delete Folder",
                "description": "Delete existing Folder",
                "operationId": "folderDelete",
                "parameters": [
                    {
                        "name": "folderId",
                        "in": "path",
                        "description": "Folder ID to edit",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation",
                        "schema": {
                            "items": {
                                "$ref": "#/definitions/Folder"
                            }
                        }
                    }
                }
            }
        },
        "/fonts": {
            "get": {
                "tags": [
                    "font"
                ],
                "summary": "Font Search",
                "description": "Search the available Fonts",
                "operationId": "fontSearch",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Filter by Font Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by Font Name",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Font"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "font"
                ],
                "summary": "Font Upload",
                "description": "Upload a new Font file",
                "operationId": "fontUpload",
                "parameters": [
                    {
                        "name": "files",
                        "in": "formData",
                        "description": "The Uploaded File",
                        "required": true,
                        "type": "file"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Optional Font Name",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/fonts/details/{id}": {
            "get": {
                "tags": [
                    "font"
                ],
                "summary": "Font Details",
                "description": "Get the Font details",
                "operationId": "fontDetails",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Font ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "title": "details",
                                "type": "array"
                            }
                        }
                    }
                }
            }
        },
        "/fonts/download/{id}": {
            "get": {
                "tags": [
                    "font"
                ],
                "summary": "Download Font",
                "description": "Download a Font file from the Library",
                "operationId": "fontDownload",
                "produces": [
                    "application/octet-stream"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Font ID to Download",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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"
                            }
                        }
                    }
                }
            }
        },
        "/fonts/{id}/delete": {
            "delete": {
                "tags": [
                    "font"
                ],
                "summary": "Font Delete",
                "description": "Delete existing Font file",
                "operationId": "fontDelete",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Font ID to delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/layout": {
            "get": {
                "tags": [
                    "layout"
                ],
                "summary": "Search Layouts",
                "description": "Search for Layouts viewable by this user",
                "operationId": "layoutSearch",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "query",
                        "description": "Filter by Layout Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "parentId",
                        "in": "query",
                        "description": "Filter by parent Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "showDrafts",
                        "in": "query",
                        "description": "Flag indicating whether to show drafts",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "layout",
                        "in": "query",
                        "description": "Filter by partial Layout name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userId",
                        "in": "query",
                        "description": "Filter by user Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "retired",
                        "in": "query",
                        "description": "Filter by retired flag",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by Tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ownerUserGroupId",
                        "in": "query",
                        "description": "Filter by users in this UserGroupId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "publishedStatusId",
                        "in": "query",
                        "description": "Filter by published status id, 1 - Published, 2 - Draft",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Embed related data such as regions, playlists, widgets, tags, campaigns, permissions",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "campaignId",
                        "in": "query",
                        "description": "Get all Layouts for a given campaignId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "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": false,
                        "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"
                    },
                    {
                        "name": "returnDraft",
                        "in": "formData",
                        "description": "Should we return the Draft Layout or the Published Layout on Success?",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Code identifier for this Layout",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "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": "enableStat",
                        "in": "formData",
                        "description": "Flag indicating whether the Layout stat is enabled",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Code identifier for this Layout",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "layout"
                ],
                "summary": "Clear Layout",
                "description": "Clear a draft layouts canvas of all widgets and elements, leaving it blank.",
                "operationId": "layoutClear",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID to Clear, must be a draft.",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "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/background/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Edit Layout Background",
                "description": "Edit a Layout Background",
                "operationId": "layoutEditBackground",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "required": true,
                        "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"
                        }
                    }
                }
            }
        },
        "/layout/applyTemplate/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Apply Template",
                "description": "Apply a new Template to an existing Layout, replacing it.",
                "operationId": "layoutApplyTemplate",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "templateId",
                        "in": "formData",
                        "description": "If the Layout should be created with a Template, provide the ID, otherwise don't provide",
                        "required": false,
                        "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/unretire/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Unretire Layout",
                "description": "Retire a Layout so that it isn't available to Schedule. Existing Layouts will still be played",
                "operationId": "layoutUnretire",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/layout/setenablestat/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Enable Stats Collection",
                "description": "Set Enable Stats Collection? to use for the collection of Proof of Play statistics for a Layout.",
                "operationId": "layoutSetEnableStat",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "enableStat",
                        "in": "formData",
                        "description": "Flag indicating whether the Layout stat is enabled",
                        "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"
                        }
                    }
                }
            }
        },
        "/layout/checkout/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Checkout Layout",
                "description": "Checkout a Layout so that it can be edited. The original Layout will still be played",
                "operationId": "layoutCheckout",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        }
                    }
                }
            }
        },
        "/layout/publish/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Publish Layout",
                "description": "Publish a Layout, discarding the original",
                "operationId": "layoutPublish",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publishNow",
                        "in": "formData",
                        "description": "Flag, indicating whether to publish layout now",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "publishDate",
                        "in": "formData",
                        "description": "The date/time at which layout should be published",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        }
                    }
                }
            }
        },
        "/layout/discard/{layoutId}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Discard Layout",
                "description": "Discard a Layout restoring the original",
                "operationId": "layoutDiscard",
                "parameters": [
                    {
                        "name": "layoutId",
                        "in": "path",
                        "description": "The Layout ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        }
                    }
                }
            }
        },
        "/layout/fullscreen": {
            "post": {
                "tags": [
                    "layout"
                ],
                "summary": "Add a Full Screen Layout",
                "description": "Add a new full screen Layout with specified Media/Playlist",
                "operationId": "layoutAddFullScreen",
                "parameters": [
                    {
                        "name": "id",
                        "in": "formData",
                        "description": "The Media or Playlist ID that should be added to this Layout",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "type",
                        "in": "formData",
                        "description": "The type of Layout to be created = media or playlist",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "resolutionId",
                        "in": "formData",
                        "description": "The Id of the resolution for this Layout, defaults to 1080p for playlist and closest resolution match for Media",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "backgroundColor",
                        "in": "formData",
                        "description": "A HEX color to use as the background color of this Layout. Default is black #000",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "layoutDuration",
                        "in": "formData",
                        "description": "Use with media type, to specify the duration this Media should play in one loop",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/library/setenablestat/{mediaId}": {
            "put": {
                "tags": [
                    "library"
                ],
                "summary": "Enable Stats Collection",
                "description": "Set Enable Stats Collection? to use for the collection of Proof of Play statistics for a media.",
                "operationId": "mediaSetEnableStat",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "enableStat",
                        "in": "formData",
                        "description": "The option to enable the collection of Media Proof of Play statistics",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/library": {
            "get": {
                "tags": [
                    "library"
                ],
                "summary": "Library Search",
                "description": "Search the Library for this user",
                "operationId": "librarySearch",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "query",
                        "description": "Filter by Media Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "media",
                        "in": "query",
                        "description": "Filter by Media Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter by Media Type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ownerId",
                        "in": "query",
                        "description": "Filter by Owner Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "retired",
                        "in": "query",
                        "description": "Filter by Retired",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by Tags - comma seperated",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "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": "query",
                        "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": "query",
                        "description": "Filter by users in this UserGroupId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isReturnPublicUrls",
                        "in": "query",
                        "description": "Should the thumbail URLs be authenticated S3 style public URL, default = false",
                        "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, optionally replacing an existing media item, optionally adding to a playlist.",
                "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"
                    },
                    {
                        "name": "tags",
                        "in": "formData",
                        "description": "Comma separated string of Tags that should be assigned to uploaded Media",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "expires",
                        "in": "formData",
                        "description": "Date in Y-m-d H:i:s format, will set expiration date on the uploaded Media",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "playlistId",
                        "in": "formData",
                        "description": "A playlistId to add this uploaded media to",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "widgetFromDt",
                        "in": "formData",
                        "description": "Date in Y-m-d H:i:s format, will set widget start date. Requires a playlistId.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "widgetToDt",
                        "in": "formData",
                        "description": "Date in Y-m-d H:i:s format, will set widget end date. Requires a playlistId.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "deleteOnExpiry",
                        "in": "formData",
                        "description": "Flag (0, 1), set to 1 to remove the Widget from the Playlist when the widgetToDt has been reached",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "applyToMedia",
                        "in": "formData",
                        "description": "Flag (0, 1), set to 1 to apply the widgetFromDt as the expiry date on the Media",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/library/search": {
            "get": {
                "tags": [
                    "library"
                ],
                "summary": "Library Search All",
                "description": "Search all library files from local and connectors",
                "operationId": "librarySearchAll",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SearchResult"
                            }
                        }
                    }
                }
            }
        },
        "/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"
                    },
                    {
                        "name": "expires",
                        "in": "formData",
                        "description": "Date in Y-m-d H:i:s format, will set expiration date on the Media item",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this media should be 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"
                    },
                    {
                        "name": "purge",
                        "in": "formData",
                        "description": "Should this Media be added to the Purge List for all Displays?",
                        "required": false,
                        "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/thumbnail/{mediaId}": {
            "get": {
                "tags": [
                    "library"
                ],
                "summary": "Download Thumbnail",
                "description": "Download thumbnail for a Media file from the Library",
                "operationId": "libraryThumbnail",
                "produces": [
                    "application/octet-stream"
                ],
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media ID to Download",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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"
                            }
                        }
                    }
                }
            }
        },
        "/library/{mediaId}/isused/": {
            "get": {
                "tags": [
                    "library"
                ],
                "summary": "Media usage check",
                "description": "Checks if a Media is being used",
                "operationId": "mediaIsUsed",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/library/uploadUrl": {
            "post": {
                "tags": [
                    "library"
                ],
                "summary": "Upload Media from URL",
                "description": "Upload Media to CMS library from an external URL",
                "operationId": "uploadFromUrl",
                "parameters": [
                    {
                        "name": "url",
                        "in": "formData",
                        "description": "The URL to the media",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "in": "formData",
                        "description": "The type of the media, image, video etc",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "extension",
                        "in": "formData",
                        "description": "Optional extension of the media, jpg, png etc. If not set in the request it will be retrieved from the headers",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "enableStat",
                        "in": "formData",
                        "description": "The option to enable the collection of Media Proof of Play statistics, On, Off or Inherit.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "optionalName",
                        "in": "formData",
                        "description": "An optional name for this media file, if left empty it will default to the file name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "expires",
                        "in": "formData",
                        "description": "Date in Y-m-d H:i:s format, will set expiration date on the Media item",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this media should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Media"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/library/{id}/selectfolder": {
            "put": {
                "tags": [
                    "library"
                ],
                "summary": "Media Select folder",
                "description": "Select Folder for Media",
                "operationId": "librarySelectFolder",
                "parameters": [
                    {
                        "name": "mediaId",
                        "in": "path",
                        "description": "The Media ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Campaign"
                        }
                    }
                }
            }
        },
        "/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"
                            }
                        }
                    }
                }
            }
        },
        "/menuboards": {
            "get": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Search Menu Boards",
                "description": "Search all Menu Boards this user has access to",
                "operationId": "menuBoardSearch",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "query",
                        "description": "Filter by Menu board Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "userId",
                        "in": "query",
                        "description": "Filter by Owner Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "Filter by code",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/MenuBoard"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard": {
            "post": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Add Menu Board",
                "description": "Add a new Menu Board",
                "operationId": "menuBoardAdd",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board description",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Menu Board Folder Id",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/MenuBoard"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard/{menuId}": {
            "put": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Edit Menu Board",
                "description": "Edit existing Menu Board",
                "operationId": "menuBoardEdit",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The Menu Board ID to Edit",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board description",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Menu Board Folder Id",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Delete Menu Board",
                "description": "Delete existing Menu Board",
                "operationId": "menuBoardDelete",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The Menu Board ID to Delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/menuboard/{id}/selectfolder": {
            "put": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Menu Board Select folder",
                "description": "Select Folder for Menu Board",
                "operationId": "menuBoardSelectFolder",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The Menu Board ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/MenuBoard"
                        }
                    }
                }
            }
        },
        "/menuboard/{menuId}/categories": {
            "get": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Search Menu Board Categories",
                "description": "Search all Menu Boards Categories this user has access to",
                "operationId": "menuBoardCategorySearch",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "Filter by Menu board Id",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "menuCategoryId",
                        "in": "query",
                        "description": "Filter by Menu Board Category Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "Filter by code",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/MenuBoard"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard/{menuId}/category": {
            "post": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Add Menu Board",
                "description": "Add a new Menu Board Category",
                "operationId": "menuBoardCategoryAdd",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The Menu Board ID to which we want to add this Category to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board Category name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "mediaId",
                        "in": "formData",
                        "description": "Media ID associated with this Menu Board Category",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board Category code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board Category description",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/MenuBoard"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard/{menuCategoryId}/category": {
            "put": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Edit Menu Board Category",
                "description": "Edit existing Menu Board Category",
                "operationId": "menuBoardCategoryEdit",
                "parameters": [
                    {
                        "name": "menuCategoryId",
                        "in": "path",
                        "description": "The Menu Board Category ID to Edit",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "mediaId",
                        "in": "formData",
                        "description": "Media ID from CMS Library to associate with this Menu Board Category",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board Category code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board Category description",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Delete Menu Board Category",
                "description": "Delete existing Menu Board Category",
                "operationId": "menuBoardCategoryDelete",
                "parameters": [
                    {
                        "name": "menuId",
                        "in": "path",
                        "description": "The menuId to Delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/menuboard/{menuCategoryId}/products": {
            "get": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Search Menu Board Products",
                "description": "Search all Menu Boards Products this user has access to",
                "operationId": "menuBoardProductsSearch",
                "parameters": [
                    {
                        "name": "menuCategoryId",
                        "in": "path",
                        "description": "Filter by Menu Board Category Id",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "menuId",
                        "in": "query",
                        "description": "Filter by Menu board Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "Filter by code",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/MenuBoard"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard/{menuCategoryId}/product": {
            "post": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Add Menu Board Product",
                "description": "Add a new Menu Board Product",
                "operationId": "menuBoardProductAdd",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board Product name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board Product description",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "price",
                        "in": "formData",
                        "description": "Menu Board Product price",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "allergyInfo",
                        "in": "formData",
                        "description": "Menu Board Product allergyInfo",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "calories",
                        "in": "formData",
                        "description": "Menu Board Product calories",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Menu Board Product Display Order, used for sorting",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "availability",
                        "in": "formData",
                        "description": "Menu Board Product availability",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "mediaId",
                        "in": "formData",
                        "description": "Media ID from CMS Library to associate with this Menu Board Product",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board Product code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "productOptions",
                        "in": "formData",
                        "description": "An array of optional Product Option names",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "productValues",
                        "in": "formData",
                        "description": "An array of optional Product Option values",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/MenuBoard"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/menuboard/{menuProductId}/product": {
            "put": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Edit Menu Board Product",
                "description": "Edit existing Menu Board Product",
                "operationId": "menuBoardProductEdit",
                "parameters": [
                    {
                        "name": "menuProductId",
                        "in": "path",
                        "description": "The Menu Board Product ID to Edit",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Menu Board Product name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "formData",
                        "description": "Menu Board Product description",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "price",
                        "in": "formData",
                        "description": "Menu Board Product price",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "allergyInfo",
                        "in": "formData",
                        "description": "Menu Board Product allergyInfo",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "calories",
                        "in": "formData",
                        "description": "Menu Board Product calories",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Menu Board Product Display Order, used for sorting",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "availability",
                        "in": "formData",
                        "description": "Menu Board Product availability",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "mediaId",
                        "in": "formData",
                        "description": "Media ID from CMS Library to associate with this Menu Board Product",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "code",
                        "in": "formData",
                        "description": "Menu Board Product code",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "productOptions",
                        "in": "formData",
                        "description": "An array of optional Product Option names",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "productValues",
                        "in": "formData",
                        "description": "An array of optional Product Option values",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "menuBoard"
                ],
                "summary": "Delete Menu Board",
                "description": "Delete existing Menu Board Product",
                "operationId": "menuBoardProductDelete",
                "parameters": [
                    {
                        "name": "menuProductId",
                        "in": "path",
                        "description": "The Menu Board Product ID to Delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/module": {
            "get": {
                "tags": [
                    "module"
                ],
                "summary": "Module Search",
                "description": "Get a list of all modules available to this CMS",
                "operationId": "moduleSearch",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Module"
                        }
                    }
                }
            }
        },
        "/module/properties/{id}": {
            "get": {
                "tags": [
                    "module"
                ],
                "summary": "Get Module Properties",
                "description": "Get a module properties which are needed to for the editWidget call",
                "operationId": "getModuleProperties",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The ModuleId",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Property"
                        }
                    }
                }
            }
        },
        "/module/templates/{dataType}": {
            "get": {
                "tags": [
                    "module"
                ],
                "summary": "Module Template Search",
                "description": "Get a list of templates available for a particular data type",
                "operationId": "moduleTemplateSearch",
                "parameters": [
                    {
                        "name": "dataType",
                        "in": "path",
                        "description": "DataType to return templates for",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Type to return templates for",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "An array of module templates for the provided datatype",
                        "schema": {
                            "$ref": "#/definitions/ModuleTemplate"
                        }
                    }
                }
            }
        },
        "/module/template/{dataType}/properties/{id}": {
            "get": {
                "tags": [
                    "module"
                ],
                "summary": "Get Module Template Properties",
                "description": "Get a module template properties which are needed to for the editWidget call",
                "operationId": "getModuleProperties",
                "parameters": [
                    {
                        "name": "dataType",
                        "in": "path",
                        "description": "The Template DataType",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Template Id",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "id": "string",
                                "type": "string",
                                "title": "string",
                                "helpText": "string",
                                "options": "array"
                            }
                        }
                    }
                }
            }
        },
        "/notification": {
            "get": {
                "tags": [
                    "notification"
                ],
                "summary": "Notification Search",
                "description": "Search this users Notifications",
                "operationId": "notificationSearch",
                "parameters": [
                    {
                        "name": "notificationId",
                        "in": "query",
                        "description": "Filter by Notification Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "subject",
                        "in": "query",
                        "description": "Filter by Subject",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "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": "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": "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"
                    }
                }
            }
        },
        "/playersoftware": {
            "post": {
                "tags": [
                    "Player Software"
                ],
                "summary": "Player Software Upload",
                "description": "Upload a new Player version file",
                "operationId": "playersoftwareUpload",
                "parameters": [
                    {
                        "name": "files",
                        "in": "formData",
                        "description": "The Uploaded File",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playersoftware/download/{id}": {
            "get": {
                "tags": [
                    "Player Software"
                ],
                "summary": "Download Player Version file",
                "description": "Download Player Version file",
                "operationId": "playersoftwareDownload",
                "produces": [
                    "application/octet-stream"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Player Version ID to Download",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "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"
                            }
                        }
                    }
                }
            }
        },
        "/playlist": {
            "get": {
                "tags": [
                    "playlist"
                ],
                "summary": "Search Playlists",
                "description": "Search for Playlists viewable by this user",
                "operationId": "playlistSearch",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "query",
                        "description": "Filter by Playlist Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by partial Playlist name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userId",
                        "in": "query",
                        "description": "Filter by user Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "tags",
                        "in": "query",
                        "description": "Filter by tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "query",
                        "description": "A flag indicating whether to treat the tags filter as an exact match",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "query",
                        "description": "When filtering by multiple Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ownerUserGroupId",
                        "in": "query",
                        "description": "Filter by users in this UserGroupId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Embed related data such as regions, widgets, permissions, tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Playlist"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "playlist"
                ],
                "summary": "Add a Playlist",
                "description": "Add a new Playlist",
                "operationId": "playlistAdd",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "The Name for this Playlist",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "tags",
                        "in": "formData",
                        "description": "Tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isDynamic",
                        "in": "formData",
                        "description": "Is this Playlist Dynamic?",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "filterMediaName",
                        "in": "formData",
                        "description": "Add Library Media matching the name filter provided",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "logicalOperatorName",
                        "in": "formData",
                        "description": "When filtering by multiple names in name filter, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "filterMediaTag",
                        "in": "formData",
                        "description": "Add Library Media matching the tag filter provided",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "formData",
                        "description": "When filtering by Tags, should we use exact match?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "formData",
                        "description": "When filtering by Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "maxNumberOfItems",
                        "in": "formData",
                        "description": "Maximum number of items that can be assigned to this Playlist (dynamic Playlist only)",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Playlist"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/playlist/{playlistId}": {
            "put": {
                "tags": [
                    "playlist"
                ],
                "summary": "Edit a Playlist",
                "description": "Edit a Playlist",
                "operationId": "playlistEdit",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The PlaylistId to Edit",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "The Name for this Playlist",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "tags",
                        "in": "formData",
                        "description": "Tags",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isDynamic",
                        "in": "formData",
                        "description": "Is this Playlist Dynamic?",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "filterMediaName",
                        "in": "formData",
                        "description": "Add Library Media matching the name filter provided",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "logicalOperatorName",
                        "in": "formData",
                        "description": "When filtering by multiple names in name filter, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "filterMediaTag",
                        "in": "formData",
                        "description": "Add Library Media matching the tag filter provided",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTags",
                        "in": "formData",
                        "description": "When filtering by Tags, should we use exact match?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "logicalOperator",
                        "in": "formData",
                        "description": "When filtering by Tags, which logical operator should be used? AND|OR",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "maxNumberOfItems",
                        "in": "formData",
                        "description": "Maximum number of items that can be assigned to this Playlist (dynamic Playlist only)",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "playlist"
                ],
                "summary": "Delete a Playlist",
                "description": "Delete a Playlist",
                "operationId": "playlistDelete",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The PlaylistId to delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/copy/{playlistId}": {
            "post": {
                "tags": [
                    "playlist"
                ],
                "summary": "Copy Playlist",
                "description": "Copy a Playlist, providing a new name if applicable",
                "operationId": "playlistCopy",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist ID to Copy",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "The name for the new Playlist",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "copyMediaFiles",
                        "in": "formData",
                        "description": "Flag indicating whether to make new Copies of all Media Files assigned to the Playlist being Copied",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Playlist"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/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"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Optional integer to say which position this assignment should occupy in the list. If more than one media item is being added, this will be the position of the first one.",
                        "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"
                        }
                    }
                }
            }
        },
        "/playlist/usage/{playlistId}": {
            "get": {
                "tags": [
                    "playlist"
                ],
                "summary": "Get Playlist Item Usage Report",
                "description": "Get the records for the playlist item usage report",
                "operationId": "playlistUsageReport",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/usage/layouts/{playlistId}": {
            "get": {
                "tags": [
                    "playlist"
                ],
                "summary": "Get Playlist Item Usage Report for Layouts",
                "description": "Get the records for the playlist item usage report for Layouts",
                "operationId": "playlistUsageLayoutsReport",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist Id",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/setenablestat/{playlistId}": {
            "put": {
                "tags": [
                    "playlist"
                ],
                "summary": "Enable Stats Collection",
                "description": "Set Enable Stats Collection? to use for the collection of Proof of Play statistics for a Playlist.",
                "operationId": "playlistSetEnableStat",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "enableStat",
                        "in": "formData",
                        "description": "The option to enable the collection of Media Proof of Play statistics, On, Off or Inherit.",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/{id}/selectfolder": {
            "put": {
                "tags": [
                    "playlist"
                ],
                "summary": "Playlist Select folder",
                "description": "Select Folder for Playlist",
                "operationId": "playlistSelectFolder",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/{id}/convert": {
            "post": {
                "tags": [
                    "playlist"
                ],
                "summary": "Playlist Convert",
                "description": "Create a global playlist from inline editor Playlist.\r\n     * Assign created Playlist via sub-playlist Widget to region Playlist.",
                "operationId": "convert",
                "parameters": [
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Optional name for the global Playlist.",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/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": "type",
                        "in": "formData",
                        "description": "The type of region this should be, zone, frame, playlist or canvas. Default = frame.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "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"
                        }
                    }
                }
            }
        },
        "/region/drawer/{id}": {
            "put": {
                "tags": [
                    "layout"
                ],
                "summary": "Save Drawer",
                "description": "Save Drawer",
                "operationId": "regionDrawerSave",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Drawer ID to Save",
                        "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"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Region"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "layout"
                ],
                "summary": "Add drawer Region",
                "description": "Add a drawer Region to a Layout",
                "operationId": "regionDrawerAdd",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Layout ID to add the Region to",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Region"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/resolution": {
            "get": {
                "tags": [
                    "resolution"
                ],
                "summary": "Resolution Search",
                "description": "Search Resolutions this user has access to",
                "operationId": "resolutionSearch",
                "parameters": [
                    {
                        "name": "resolutionId",
                        "in": "query",
                        "description": "Filter by Resolution Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "resolution",
                        "in": "query",
                        "description": "Filter by Resolution Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "partialResolution",
                        "in": "query",
                        "description": "Filter by Partial Resolution Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "enabled",
                        "in": "query",
                        "description": "Filter by Enabled",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "description": "Filter by Resolution width",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "description": "Filter by Resolution height",
                        "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",
                "description": "\u26a0\ufe0f This endpoint is deprecated and will be removed in v5.0.",
                "operationId": "scheduleCalendarData",
                "parameters": [
                    {
                        "name": "displayGroupIds",
                        "in": "query",
                        "description": "The DisplayGroupIds to return the schedule for. [-1] for All.",
                        "required": true,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "description": "From Date in Y-m-d H:i:s format, if not provided defaults to start of the current month",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "To Date in Y-m-d H:i:s format, if not provided defaults to start of the next month",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful response",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ScheduleCalendarData"
                            }
                        }
                    }
                },
                "deprecated": true
            }
        },
        "/schedule/{displayGroupId}/events": {
            "get": {
                "tags": [
                    "schedule"
                ],
                "summary": "Event List",
                "operationId": "scheduleCalendarDataDisplayGroup",
                "parameters": [
                    {
                        "name": "displayGroupId",
                        "in": "path",
                        "description": "The DisplayGroupId to return the event list for.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "Date in Y-m-d H:i:s",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful response"
                    }
                }
            }
        },
        "/schedule": {
            "get": {
                "tags": [
                    "schedule"
                ],
                "summary": "Generates the Schedule events grid",
                "operationId": "scheduleSearch",
                "parameters": [
                    {
                        "name": "eventTypeId",
                        "in": "query",
                        "description": "Filter grid by eventTypeId.\r\n     * 1=Layout, 2=Command, 3=Overlay, 4=Interrupt, 5=Campaign, 6=Action, 7=Media Library, 8=Playlist",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "fromDt",
                        "in": "query",
                        "description": "From Date in Y-m-d H:i:s format",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "toDt",
                        "in": "query",
                        "description": "To Date in Y-m-d H:i:s format",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "geoAware",
                        "in": "query",
                        "description": "Flag (0-1), whether to return events using Geo Location",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "recurring",
                        "in": "query",
                        "description": "Flag (0-1), whether to return Recurring events",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "campaignId",
                        "in": "query",
                        "description": "Filter events by specific campaignId",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayGroupIds",
                        "in": "query",
                        "description": "Filter events by an array of Display Group Ids",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/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.\r\n     * 1=Layout, 2=Command, 3=Overlay, 4=Interrupt, 5=Campaign, 6=Action, 7=Media Library, 8=Playlist",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "campaignId",
                        "in": "formData",
                        "description": "The Campaign ID to use for this Event.\r\n     * If a Layout is needed then the Campaign specific ID for that Layout should be used.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "fullScreenCampaignId",
                        "in": "formData",
                        "description": "For Media or Playlist event Type. The Layout specific Campaign ID to use for this Event.\r\n     * This needs to be the Layout created with layout/fullscreen function",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "commandId",
                        "in": "formData",
                        "description": "The Command ID to use for this Event.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "mediaId",
                        "in": "formData",
                        "description": "The Media 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"
                        }
                    },
                    {
                        "name": "scheduleReminders",
                        "in": "formData",
                        "description": "Array of Reminders for this event",
                        "required": false,
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/ScheduleReminderArray"
                        }
                    },
                    {
                        "name": "isGeoAware",
                        "in": "formData",
                        "description": "Flag (0-1), whether this event is using Geo Location",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "geoLocation",
                        "in": "formData",
                        "description": "Array of comma separated strings each with comma separated pair of coordinates",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "geoLocationJson",
                        "in": "formData",
                        "description": "Valid GeoJSON string, use as an alternative to geoLocation parameter",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionType",
                        "in": "formData",
                        "description": "For Action eventTypeId, the type of the action - command or navLayout",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionTriggerCode",
                        "in": "formData",
                        "description": "For Action eventTypeId, the webhook trigger code for the Action",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionLayoutCode",
                        "in": "formData",
                        "description": "For Action eventTypeId and navLayout actionType, the Layout Code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dataSetId",
                        "in": "formData",
                        "description": "For Data Connector eventTypeId, the DataSet ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dataSetParams",
                        "in": "formData",
                        "description": "For Data Connector eventTypeId, the DataSet params",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Schedule"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/schedulerecurrence/{eventId}": {
            "delete": {
                "tags": [
                    "schedule"
                ],
                "summary": "Delete a Recurring Event",
                "description": "Delete a Recurring Event of a Scheduled Event",
                "operationId": "schedulerecurrenceDelete",
                "parameters": [
                    {
                        "name": "eventId",
                        "in": "path",
                        "description": "The Scheduled Event ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/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.\r\n     * 1=Layout, 2=Command, 3=Overlay, 4=Interrupt, 5=Campaign, 6=Action",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "campaignId",
                        "in": "formData",
                        "description": "The Campaign ID to use for this Event.\r\n     * 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": "mediaId",
                        "in": "formData",
                        "description": "The Media 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.\r\n     * 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"
                        }
                    },
                    {
                        "name": "scheduleReminders",
                        "in": "formData",
                        "description": "Array of Reminders for this event",
                        "required": false,
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/ScheduleReminderArray"
                        }
                    },
                    {
                        "name": "isGeoAware",
                        "in": "formData",
                        "description": "Flag (0-1), whether this event is using Geo Location",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "geoLocation",
                        "in": "formData",
                        "description": "Array of comma separated strings each with comma separated pair of coordinates",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "geoLocationJson",
                        "in": "formData",
                        "description": "Valid GeoJSON string, use as an alternative to geoLocation parameter",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionType",
                        "in": "formData",
                        "description": "For Action eventTypeId, the type of the action - command or navLayout",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionTriggerCode",
                        "in": "formData",
                        "description": "For Action eventTypeId, the webhook trigger code for the Action",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "actionLayoutCode",
                        "in": "formData",
                        "description": "For Action eventTypeId and navLayout actionType, the Layout Code identifier",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dataSetId",
                        "in": "formData",
                        "description": "For Data Connector eventTypeId, the DataSet ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "dataSetParams",
                        "in": "formData",
                        "description": "For Data Connector eventTypeId, the DataSet params",
                        "required": false,
                        "type": "string"
                    }
                ],
                "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": "query",
                        "description": "The type of stat to return. Layout|Media|Widget",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "fromDt",
                        "in": "query",
                        "description": "The start date for the filter. Default = 24 hours ago",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "toDt",
                        "in": "query",
                        "description": "The end date for the filter. Default = now.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "statDate",
                        "in": "query",
                        "description": "The statDate filter returns records that are greater than or equal a particular date",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "statId",
                        "in": "query",
                        "description": "The statId filter returns records that are greater than a particular statId",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "displayId",
                        "in": "query",
                        "description": "An optional display Id to filter",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayIds",
                        "in": "query",
                        "description": "An optional array of display Id to filter",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "layoutId",
                        "in": "query",
                        "description": "An optional array of layout Id to filter",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "parentCampaignId",
                        "in": "query",
                        "description": "An optional Parent Campaign ID to filter",
                        "required": false,
                        "type": "integer",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "mediaId",
                        "in": "query",
                        "description": "An optional array of media Id to filter",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "campaignId",
                        "in": "query",
                        "description": "An optional Campaign Id to filter",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "returnDisplayLocalTime",
                        "in": "query",
                        "description": "true/1/On if the results should be in display local time, otherwise CMS time",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "returnDateFormat",
                        "in": "query",
                        "description": "A PHP formatted date format for how the dates in this call should be returned.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "embed",
                        "in": "query",
                        "description": "Should the return embed additional data, options are layoutTags,displayTags and mediaTags",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/StatisticsData"
                            }
                        }
                    }
                }
            }
        },
        "/stats/getExportStatsCount": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Total count of stats",
                "operationId": "getExportStatsCount",
                "parameters": [
                    {
                        "name": "fromDt",
                        "in": "query",
                        "description": "The start date for the filter. Default = 24 hours ago",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "toDt",
                        "in": "query",
                        "description": "The end date for the filter. Default = now.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "displayId",
                        "in": "query",
                        "description": "An optional display Id to filter",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/stats/timeDisconnected": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "operationId": "timeDisconnectedSearch",
                "parameters": [
                    {
                        "name": "fromDt",
                        "in": "query",
                        "description": "The start date for the filter.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "toDt",
                        "in": "query",
                        "description": "The end date for the filter.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "displayId",
                        "in": "query",
                        "description": "An optional display Id to filter",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "displayIds",
                        "in": "query",
                        "description": "An optional array of display Id to filter",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "returnDisplayLocalTime",
                        "in": "query",
                        "description": "true/1/On if the results should be in display local time, otherwise CMS time",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "returnDateFormat",
                        "in": "query",
                        "description": "A PHP formatted date format for how the dates in this call should be returned.",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/TimeDisconnectedData"
                            }
                        }
                    }
                }
            }
        },
        "/syncgroups": {
            "get": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Get Sync Groups",
                "operationId": "syncGroupSearch",
                "parameters": [
                    {
                        "name": "syncGroupId",
                        "in": "query",
                        "description": "Filter by syncGroup Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter by syncGroup Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "ownerId",
                        "in": "query",
                        "description": "Filter by Owner ID",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "query",
                        "description": "Filter by Folder ID",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "a successful response",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SyncGroup"
                            }
                        },
                        "headers": {
                            "X-Total-Count": {
                                "description": "The total number of records",
                                "type": "integer"
                            }
                        }
                    }
                }
            }
        },
        "/syncgroup/add": {
            "post": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Add a Sync Group",
                "description": "Add a new Sync Group to the CMS",
                "operationId": "syncGroupAdd",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "The Sync Group Name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "syncPublisherPort",
                        "in": "formData",
                        "description": "The publisher port number on which sync group members will communicate - default 9590",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DisplayGroup"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new DisplayGroup",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/syncgroup/{syncGroupId}/members": {
            "post": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Assign one or more Displays to a Sync Group",
                "description": "Adds the provided Displays to the Sync Group",
                "operationId": "syncGroupMembers",
                "parameters": [
                    {
                        "name": "syncGroupId",
                        "in": "path",
                        "description": "The Sync 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"
                    }
                }
            }
        },
        "/syncgroup/{syncGroupId}/edit": {
            "post": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Edit a Sync Group",
                "description": "Edit an existing Sync Group",
                "operationId": "syncGroupEdit",
                "parameters": [
                    {
                        "name": "syncGroupId",
                        "in": "path",
                        "description": "The Sync Group to assign to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "The Sync Group Name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "syncPublisherPort",
                        "in": "formData",
                        "description": "The publisher port number on which sync group members will communicate - default 9590",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "syncSwitchDelay",
                        "in": "formData",
                        "description": "The delay (in ms) when displaying the changes in content - default 750",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "syncVideoPauseDelay",
                        "in": "formData",
                        "description": "The delay (in ms) before unpausing the video on start - default 100",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "leadDisplayId",
                        "in": "formData",
                        "description": "The ID of the Display that belongs to this Sync Group and should act as a Lead Display",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "folderId",
                        "in": "formData",
                        "description": "Folder ID to which this object should be assigned to",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/DisplayGroup"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new DisplayGroup",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/syncgroup/{syncGroupId}/delete": {
            "delete": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Delete a Sync Group",
                "description": "Delete an existing Sync Group identified by its Id",
                "operationId": "syncGroupDelete",
                "parameters": [
                    {
                        "name": "syncGroupId",
                        "in": "path",
                        "description": "The syncGroupId to delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/syncgroup/{syncGroupId}/displays": {
            "get": {
                "tags": [
                    "syncGroup"
                ],
                "summary": "Get members of this sync group",
                "operationId": "syncGroupDisplays",
                "parameters": [
                    {
                        "name": "syncGroupId",
                        "in": "path",
                        "description": "The syncGroupId to delete",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "eventId",
                        "in": "query",
                        "description": "Filter by event ID - return will include Layouts Ids scheduled against each group member",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "a successful response",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SyncGroup"
                            }
                        }
                    }
                }
            }
        },
        "/tag": {
            "get": {
                "tags": [
                    "tags"
                ],
                "summary": "Search Tags",
                "description": "Search for Tags viewable by this user",
                "operationId": "tagSearch",
                "parameters": [
                    {
                        "name": "tagId",
                        "in": "query",
                        "description": "Filter by Tag Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "tag",
                        "in": "query",
                        "description": "Filter by partial Tag",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "exactTag",
                        "in": "query",
                        "description": "Filter by exact Tag",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isSystem",
                        "in": "query",
                        "description": "Filter by isSystem flag",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isRequired",
                        "in": "query",
                        "description": "Filter by isRequired flag",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "haveOptions",
                        "in": "query",
                        "description": "Set to 1 to show only results that have options set",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Tag"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "tags"
                ],
                "summary": "Add a new Tag",
                "description": "Add a new Tag",
                "operationId": "tagAdd",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Tag name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isRequired",
                        "in": "formData",
                        "description": "A flag indicating whether value selection on assignment is required",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "options",
                        "in": "formData",
                        "description": "A comma separated string of Tag options",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Tag"
                            }
                        }
                    }
                }
            }
        },
        "/tag/{tagId}": {
            "put": {
                "tags": [
                    "tags"
                ],
                "summary": "Edit existing Tag",
                "description": "Edit existing Tag",
                "operationId": "tagEdit",
                "parameters": [
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "Tag name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isRequired",
                        "in": "formData",
                        "description": "A flag indicating whether value selection on assignment is required",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "options",
                        "in": "formData",
                        "description": "A comma separated string of Tag options",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Tag"
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "tags"
                ],
                "summary": "Delete Tag",
                "description": "Delete a Tag",
                "operationId": "tagDelete",
                "parameters": [
                    {
                        "name": "tagId",
                        "in": "path",
                        "description": "The Tag ID to delete",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/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"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "template"
                ],
                "summary": "Add a Template",
                "description": "Add a new Template to the CMS",
                "operationId": "templateAdd",
                "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": "resolutionId",
                        "in": "formData",
                        "description": "If a Template is not provided, provide the resolutionId for this Layout.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "returnDraft",
                        "in": "formData",
                        "description": "Should we return the Draft Layout or the Published Layout on Success?",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Layout"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/template/search": {
            "get": {
                "tags": [
                    "template"
                ],
                "summary": "Template Search All",
                "description": "Search all templates from local and connectors",
                "operationId": "templateSearchAll",
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/SearchResult"
                            }
                        }
                    }
                }
            }
        },
        "/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": "query",
                        "description": "Filter by User Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "userName",
                        "in": "query",
                        "description": "Filter by User Name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userTypeId",
                        "in": "query",
                        "description": "Filter by UserType Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "retired",
                        "in": "query",
                        "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": "string",
                        "enum": [
                            "statusdashboard.view",
                            "icondashboard.view",
                            "mediamanager.view",
                            "playlistdashboard.view"
                        ]
                    },
                    {
                        "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": "string",
                        "enum": [
                            "statusdashboard.view",
                            "icondashboard.view",
                            "mediamanager.view",
                            "playlistdashboard.view"
                        ]
                    },
                    {
                        "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/permissions/{entity}": {
            "get": {
                "tags": [
                    "user"
                ],
                "summary": "Permission Data",
                "description": "Permission data for the multiple Entities and Objects Provided.",
                "operationId": "userPermissionsMultiSearch",
                "parameters": [
                    {
                        "name": "entity",
                        "in": "path",
                        "description": "The Entity",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "ids",
                        "in": "query",
                        "description": "The IDs of the Objects to return permissions for",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Permission"
                            }
                        }
                    }
                }
            }
        },
        "/user/permissions/{entity}/multiple": {
            "post": {
                "tags": [
                    "user"
                ],
                "summary": "Multiple Permission Set",
                "description": "Set Permissions to users/groups for multiple provided entities.",
                "operationId": "userPermissionsMultiSet",
                "parameters": [
                    {
                        "name": "entity",
                        "in": "path",
                        "description": "The Entity type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "ids",
                        "in": "formData",
                        "description": "Array of object IDs",
                        "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": "query",
                        "description": "An optional preference",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful response",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/UserOption"
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "user"
                ],
                "summary": "Save User Preferences",
                "description": "Save User preferences from the Preferences form.",
                "operationId": "userPrefEditFromForm",
                "parameters": [
                    {
                        "name": "navigationMenuPosition",
                        "in": "formData",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "useLibraryDuration",
                        "in": "formData",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "showThumbnailColumn",
                        "in": "formData",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "rememberFolderTreeStateGlobally",
                        "in": "formData",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "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": "query",
                        "description": "Filter by UserGroup Id",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "userGroup",
                        "in": "query",
                        "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": "decription",
                        "in": "formData",
                        "description": "A description of the User Group",
                        "required": false,
                        "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\r\n     * for Displays they have permissions to see",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isDataSetNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive DataSet notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isLayoutNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Layout notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isLibraryNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Library notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isReportNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Report notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isScheduleNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Schedule notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isCustomNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Custom notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isShownForAddUser",
                        "in": "formData",
                        "description": "Flag (0, 1), should this Group be shown in the Add User onboarding form.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "defaultHomePageId",
                        "in": "formData",
                        "description": "If this user has been created via the onboarding form, this should be the default home page",
                        "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": "decription",
                        "in": "formData",
                        "description": "A description of the User Group",
                        "required": false,
                        "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\r\n     * for Displays they have permissions to see",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isDataSetNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive DataSet notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isLayoutNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Layout notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isLibraryNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Library notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isReportNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Report notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isScheduleNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Schedule notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isCustomNotification",
                        "in": "formData",
                        "description": "Flag (0, 1), should members of this Group receive Custom notification emails?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isShownForAddUser",
                        "in": "formData",
                        "description": "Flag (0, 1), should this Group be shown in the Add User onboarding form.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "defaultHomePageId",
                        "in": "formData",
                        "description": "If this user has been created via the onboarding form, this should be the default home page",
                        "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": "integer"
                    },
                    {
                        "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": "integer"
                    },
                    {
                        "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"
                    },
                    {
                        "name": "copyFeatures",
                        "in": "formData",
                        "description": "Flag indicating whether to copy group features",
                        "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/{type}/{playlistId}": {
            "post": {
                "tags": [
                    "widget"
                ],
                "summary": "Add a Widget to a Playlist",
                "description": "Add a new Widget to a Playlist",
                "operationId": "addWidget",
                "parameters": [
                    {
                        "name": "type",
                        "in": "path",
                        "description": "The type of the Widget e.g. text. Media based Widgets like Image are added via POST /playlist/library/assign/{playlistId} call.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "playlistId",
                        "in": "path",
                        "description": "The Playlist ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Optional integer to say which position this assignment should occupy in the list. If more than one media item is being added, this will be the position of the first one.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "templateId",
                        "in": "formData",
                        "description": "If the module type provided has a dataType then provide the templateId to use.",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/playlist/widget/{id}": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Edit a Widget",
                "description": "Edit a widget providing new properties to set on it",
                "operationId": "editWidget",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The ID of the Widget",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "useDuration",
                        "in": "formData",
                        "description": "Set a duration on this widget, if unchecked the default or library duration will be used.",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "duration",
                        "in": "formData",
                        "description": "Duration to use on this widget",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "name",
                        "in": "formData",
                        "description": "An optional name for this widget",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "enableStat",
                        "in": "formData",
                        "description": "Should stats be enabled? On|Off|Inherit ",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isRepeatData",
                        "in": "formData",
                        "description": "If this widget requires data, should that data be repeated to meet the number of items requested?",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "showFallback",
                        "in": "formData",
                        "description": "If this widget requires data and allows fallback data how should that data be returned? (never, always, empty, error)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "properties",
                        "in": "formData",
                        "description": "Add an additional parameter for each of the properties required this module and its template. Use the moduleProperties and moduleTemplateProperties calls to get a list of properties needed",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/widget/{widgetId}": {
            "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"
                    }
                }
            }
        },
        "/playlist/widget/{widgetId}/expiry": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Set Widget From/To Dates",
                "description": "Control when this Widget is active on this Playlist",
                "operationId": "WidgetAssignedExpiryEdit",
                "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": "fromDt",
                        "in": "formData",
                        "description": "The From Date in Y-m-d H::i:s format",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "toDt",
                        "in": "formData",
                        "description": "The To Date in Y-m-d H::i:s format",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "deleteOnExpiry",
                        "in": "formData",
                        "description": "Delete this Widget when it expires?",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "schema": {
                            "$ref": "#/definitions/Widget"
                        },
                        "headers": {
                            "Location": {
                                "description": "Location of the new widget",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/playlist/widget/{widgetId}/region": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Set Widget Region",
                "description": "Set the Region this Widget is intended for - only suitable for Drawer Widgets",
                "operationId": "WidgetAssignedRegionSet",
                "parameters": [
                    {
                        "name": "widgetId",
                        "in": "path",
                        "description": "Id of the Widget to set region on",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "targetRegionId",
                        "in": "formData",
                        "description": "The target regionId",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/widget/{widgetId}/elements": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Save elements to a widget",
                "description": "Update a widget with elements associated with it",
                "operationId": "widgetSaveElements",
                "parameters": [
                    {
                        "name": "widgetId",
                        "in": "path",
                        "description": "Id of the Widget to set region on",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "elements",
                        "in": "body",
                        "description": "JSON representing the elements assigned to this widget",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/widget/{widgetId}/dataType": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Widget DataType",
                "description": "Get DataType for a Widget according to the widgets module definition",
                "operationId": "widgetGetDataType",
                "parameters": [
                    {
                        "name": "widgetId",
                        "in": "path",
                        "description": "Id of the Widget",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataType",
                        "in": "body",
                        "description": "A JSON representation of your dataType",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/widget/data/{id}": {
            "get": {
                "tags": [
                    "widget"
                ],
                "summary": "Get data for Widget",
                "description": "Return all of the fallback data currently assigned to this Widget",
                "operationId": "getWidgetData",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Widget ID that this data should be added to",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/WidgetData"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "widget"
                ],
                "summary": "Add a data to a Widget",
                "description": "Add fallback data to a data Widget",
                "operationId": "addWidgetData",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Widget ID that this data should be added to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "data",
                        "in": "path",
                        "description": "A JSON formatted string containing a single data item for this widget's data type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Optional integer to say which position this data should appear if there is more than one data item",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "successful operation",
                        "headers": {
                            "Location": {
                                "description": "Location of the new record",
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/playlist/widget/data/{id}/{dataId}": {
            "put": {
                "tags": [
                    "widget"
                ],
                "summary": "Edit data on a Widget",
                "description": "Edit fallback data on a data Widget",
                "operationId": "editWidgetData",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Widget ID that this data is attached to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataId",
                        "in": "path",
                        "description": "The ID of the data to be edited",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "data",
                        "in": "path",
                        "description": "A JSON formatted string containing a single data item for this widget's data type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "displayOrder",
                        "in": "formData",
                        "description": "Optional integer to say which position this data should appear if there is more than one data item",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "widget"
                ],
                "summary": "Delete data on a Widget",
                "description": "Delete fallback data on a data Widget",
                "operationId": "deleteWidgetData",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Widget ID that this data is attached to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataId",
                        "in": "path",
                        "description": "The ID of the data to be deleted",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/playlist/widget/data/{id}/order": {
            "post": {
                "tags": [
                    "widget"
                ],
                "summary": "Update the order of data on a Widget",
                "description": "Provide all data to be ordered on a widget",
                "operationId": "orderWidgetData",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The Widget ID that this data is attached to",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dataId",
                        "in": "path",
                        "description": "The ID of the data to be deleted",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "order",
                        "in": "body",
                        "description": "An array of any widget data records that should be re-ordered",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    }
                }
            }
        }
    },
    "definitions": {
        "importJsonSchema": {
            "properties": {
                "uniqueKeys": {
                    "description": "A name of the unique column",
                    "type": "array",
                    "items": {
                        "properties": {
                            "colName": {
                                "description": "Import Json schema",
                                "type": "string"
                            }
                        },
                        "type": "string"
                    }
                },
                "truncate": {
                    "description": "Flag True or False, whether to truncate existing data on import",
                    "type": "array",
                    "items": {
                        "properties": {
                            "truncate": {
                                "description": "Import Json schema",
                                "type": "string"
                            }
                        },
                        "type": "string"
                    }
                },
                "rows": {
                    "description": "An array of objects with pairs: ColumnName:Value",
                    "type": "array",
                    "items": {
                        "properties": {
                            "colName": {
                                "description": "Import Json schema",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                }
            },
            "type": "object"
        },
        "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"
                }
            }
        },
        "ScheduleReminderArray": {
            "properties": {
                "reminder_value": {
                    "description": "Model to use for supplying key/value pairs to arrays",
                    "type": "integer"
                },
                "reminder_type": {
                    "description": "Model to use for supplying key/value pairs to arrays",
                    "type": "integer"
                },
                "reminder_option": {
                    "description": "Model to use for supplying key/value pairs to arrays",
                    "type": "integer"
                },
                "reminder_isEmailHidden": {
                    "description": "Model to use for supplying key/value pairs to arrays",
                    "type": "integer"
                }
            }
        },
        "StatisticsData": {
            "properties": {
                "type": {
                    "type": "string"
                },
                "display": {
                    "type": "string"
                },
                "displayId": {
                    "type": "integer"
                },
                "layout": {
                    "type": "string"
                },
                "layoutId": {
                    "type": "integer"
                },
                "media": {
                    "type": "string"
                },
                "mediaId": {
                    "type": "integer"
                },
                "widgetId": {
                    "type": "integer"
                },
                "scheduleId": {
                    "type": "integer"
                },
                "numberPlays": {
                    "type": "integer"
                },
                "duration": {
                    "type": "integer"
                },
                "start": {
                    "type": "string"
                },
                "end": {
                    "type": "string"
                },
                "statDate": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                }
            }
        },
        "TimeDisconnectedData": {
            "properties": {
                "display": {
                    "type": "string"
                },
                "displayId": {
                    "type": "integer"
                },
                "duration": {
                    "type": "integer"
                },
                "start": {
                    "type": "string"
                },
                "end": {
                    "type": "string"
                },
                "isFinished": {
                    "type": "boolean"
                }
            }
        },
        "WidgetDataOrder": {
            "properties": {
                "dataId": {
                    "description": "Data ID",
                    "type": "integer"
                },
                "displayOrder": {
                    "description": "Desired display order",
                    "type": "integer"
                }
            }
        },
        "Action": {
            "properties": {
                "actionId": {
                    "description": "The Action Id",
                    "type": "integer"
                },
                "ownerId": {
                    "description": "The Owner Id",
                    "type": "integer"
                },
                "triggerType": {
                    "description": "The Action trigger type",
                    "type": "string"
                },
                "triggerCode": {
                    "description": "The Action trigger code",
                    "type": "string"
                },
                "actionType": {
                    "description": "The Action type",
                    "type": "string"
                },
                "source": {
                    "description": "The Action source (layout, region or widget)",
                    "type": "string"
                },
                "sourceId": {
                    "description": "The Action source Id (layoutId, regionId or widgetId)",
                    "type": "integer"
                },
                "target": {
                    "description": "The Action target (region)",
                    "type": "string"
                },
                "targetId": {
                    "description": "The Action target Id (regionId)",
                    "type": "integer"
                },
                "widgetId": {
                    "description": "Widget ID that will be loaded as a result of navigate to Widget Action type",
                    "type": "integer"
                },
                "layoutCode": {
                    "description": "Layout Code identifier",
                    "type": "string"
                },
                "layoutId": {
                    "description": "Layout Id associated with this Action",
                    "type": "integer"
                }
            }
        },
        "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"
                },
                "isConfidential": {
                    "description": "Flag indicating whether this Application will be confidential or not (can it keep a secret?)",
                    "type": "integer"
                },
                "description": {
                    "description": "Application description",
                    "type": "string"
                },
                "logo": {
                    "description": "Path to Application logo",
                    "type": "string"
                },
                "coverImage": {
                    "description": "Path to Application Cover Image",
                    "type": "string"
                },
                "companyName": {
                    "description": "Company name associated with this Application",
                    "type": "string"
                },
                "termsUrl": {
                    "description": "URL to Application terms",
                    "type": "string"
                },
                "privacyUrl": {
                    "description": "URL to Application privacy policy",
                    "type": "string"
                }
            }
        },
        "ApplicationRequest": {
            "properties": {
                "requestId": {
                    "description": "The request ID",
                    "type": "integer"
                },
                "userId": {
                    "description": "The user ID",
                    "type": "integer"
                },
                "applicationId": {
                    "description": "The application ID",
                    "type": "string"
                },
                "url": {
                    "description": "The request route",
                    "type": "string"
                },
                "method": {
                    "description": "The request method",
                    "type": "string"
                },
                "startTime": {
                    "description": "The request start time",
                    "type": "string"
                },
                "endTime": {
                    "description": "The request end time",
                    "type": "string"
                },
                "duration": {
                    "description": "The request duration",
                    "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"
                },
                "ipAddress": {
                    "description": "The IP Address of the User that took this action",
                    "type": "string"
                },
                "sessionHistoryId": {
                    "description": "Session history id.",
                    "type": "integer"
                }
            }
        },
        "Campaign": {
            "properties": {
                "campaignId": {
                    "description": "The Campaign Id",
                    "type": "integer"
                },
                "ownerId": {
                    "description": "The userId of the User that owns this Campaign",
                    "type": "integer"
                },
                "type": {
                    "description": "The type of campaign, either list, ad, playlist or media",
                    "type": "string"
                },
                "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"
                },
                "tags": {
                    "description": "Tags associated with this Campaign, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "folderId": {
                    "description": "The id of the Folder this Campaign belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Campaign",
                    "type": "integer"
                },
                "cyclePlaybackEnabled": {
                    "description": "Flag indicating whether this Campaign has cycle based playback enabled",
                    "type": "integer"
                },
                "playCount": {
                    "description": "In cycle based playback, how many plays should each Layout have before moving on?",
                    "type": "integer"
                },
                "listPlayOrder": {
                    "description": "In list campaign types, how should the layouts play out?",
                    "type": "string"
                },
                "targetType": {
                    "description": "For an ad campaign, what's the target type, plays|budget|imp",
                    "type": "string"
                },
                "target": {
                    "description": "For an ad campaign, what's the target (expressed in targetType)",
                    "type": "integer"
                },
                "startDt": {
                    "description": "For an ad campaign, what's the start date",
                    "type": "integer"
                },
                "endDt": {
                    "description": "For an ad campaign, what's the end date",
                    "type": "integer"
                },
                "plays": {
                    "description": "The number of plays achived by this campaign",
                    "type": "integer"
                },
                "spend": {
                    "description": "The amount of spend in cents/pence/etc",
                    "type": "number",
                    "format": "double"
                },
                "impressions": {
                    "description": "The number of impressions achived by this campaign",
                    "type": "number",
                    "format": "double"
                },
                "lastPopId": {
                    "description": "The latest proof of play ID aggregated into the stats",
                    "type": "integer"
                },
                "ref1": {
                    "description": "Reference field 1",
                    "type": "string"
                },
                "ref2": {
                    "description": "Reference field 1",
                    "type": "string"
                },
                "ref3": {
                    "description": "Reference field 1",
                    "type": "string"
                },
                "ref4": {
                    "description": "Reference field 1",
                    "type": "string"
                },
                "ref5": {
                    "description": "Reference field 1",
                    "type": "string"
                }
            }
        },
        "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",
                    "type": "string"
                },
                "validationString": {
                    "description": "Validation String",
                    "type": "string"
                },
                "displayProfileId": {
                    "description": "DisplayProfileId if specific to a Display Profile",
                    "type": "integer"
                },
                "commandStringDisplayProfile": {
                    "description": "Command String specific to the provided DisplayProfile",
                    "type": "string"
                },
                "validationStringDisplayProfile": {
                    "description": "Validation String specific to the provided DisplayProfile",
                    "type": "string"
                },
                "availableOn": {
                    "description": "A comma separated list of player types this command is available on",
                    "type": "string"
                },
                "createAlertOn": {
                    "description": "Define if execution of this command should create an alert on success, failure, always or never.",
                    "type": "string"
                },
                "createAlertOnDisplayProfile": {
                    "description": "Create Alert On specific to the provided DisplayProfile."
                },
                "groupsWithPermissions": {
                    "description": "A comma separated list of groups/users with permissions to this Command",
                    "type": "string"
                }
            }
        },
        "Connector": {},
        "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"
                },
                "isRealTime": {
                    "description": "Flag to indicate whether this DataSet is Real time",
                    "type": "integer"
                },
                "dataConnectorSource": {
                    "description": "Indicates the source of the data connector. Requires the Real time flag. Can be null,\r\n     * user-defined, or a connector.",
                    "type": "string"
                },
                "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"
                },
                "customHeaders": {
                    "description": "Comma separated string of custom HTTP headers",
                    "type": "string"
                },
                "userAgent": {
                    "description": "Custom User agent",
                    "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"
                },
                "truncateOnEmpty": {
                    "description": "Flag whether to truncate DataSet data if no new data is pulled from remote source",
                    "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"
                },
                "sourceId": {
                    "description": "The source id for remote dataSet, 1 - JSON, 2 - CSV",
                    "type": "integer"
                },
                "ignoreFirstRow": {
                    "description": "A flag whether to ignore the first row, for CSV source remote dataSet",
                    "type": "integer"
                },
                "rowLimit": {
                    "description": "Soft limit on number of rows per DataSet, if left empty the global DataSet row limit will be used.",
                    "type": "integer"
                },
                "limitPolicy": {
                    "description": "Type of action that should be taken on next remote DataSet sync - stop, fifo or truncate",
                    "type": "string"
                },
                "csvSeparator": {
                    "description": "Custom separator for CSV source, comma will be used by default",
                    "type": "string"
                },
                "folderId": {
                    "description": "The id of the Folder this DataSet belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this DataSet",
                    "type": "integer"
                }
            }
        },
        "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"
                },
                "tooltip": {
                    "description": "Help text that should be displayed when entering data for this Column.",
                    "type": "string"
                },
                "isRequired": {
                    "description": "Flag indicating whether value must be provided for this Column.",
                    "type": "integer"
                },
                "dateFormat": {
                    "description": "Date format of dates in the source for remote DataSet.",
                    "type": "string"
                }
            }
        },
        "DataSetColumnType": {
            "properties": {
                "dataSetColumnTypeId": {
                    "description": "The ID for this DataSetColumnType",
                    "type": "integer"
                },
                "dataSetColumnType": {
                    "description": "The name for this DataSetColumnType",
                    "type": "string"
                }
            }
        },
        "DataSetRss": {},
        "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": {
                "displayId": {
                    "description": "The ID of this Display",
                    "type": "integer"
                },
                "displayTypeId": {
                    "description": "The Display Type ID of this Display",
                    "type": "integer"
                },
                "venueId": {
                    "description": "The Venue ID of this Display",
                    "type": "integer"
                },
                "address": {
                    "description": "The Location Address of this Display",
                    "type": "string"
                },
                "isMobile": {
                    "description": "Is this Display mobile?",
                    "type": "integer"
                },
                "languages": {
                    "description": "The Languages supported in this display location",
                    "type": "string"
                },
                "displayType": {
                    "description": "The type of this Display",
                    "type": "string"
                },
                "screenSize": {
                    "description": "The screen size of this Display",
                    "type": "integer"
                },
                "isOutdoor": {
                    "description": "Is this Display Outdoor?",
                    "type": "integer"
                },
                "customId": {
                    "description": "The custom ID (an Id of any external system) of this Display",
                    "type": "string"
                },
                "costPerPlay": {
                    "description": "The Cost Per Play of this Display",
                    "type": "number",
                    "format": "double"
                },
                "impressionsPerPlay": {
                    "description": "The Impressions Per Play of this Display",
                    "type": "number",
                    "format": "double"
                },
                "ref1": {
                    "description": "Optional Reference 1",
                    "type": "string"
                },
                "ref2": {
                    "description": "Optional Reference 2",
                    "type": "string"
                },
                "ref3": {
                    "description": "Optional Reference 3",
                    "type": "string"
                },
                "ref4": {
                    "description": "Optional Reference 4",
                    "type": "string"
                },
                "ref5": {
                    "description": "Optional Reference 5",
                    "type": "string"
                },
                "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, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "overrideConfig": {
                    "description": "The configuration options that will overwrite Display Profile Config"
                },
                "bandwidthLimit": {
                    "description": "The display bandwidth limit",
                    "type": "integer"
                },
                "newCmsAddress": {
                    "description": "The new CMS Address",
                    "type": "string"
                },
                "newCmsKey": {
                    "description": "The new CMS Key",
                    "type": "string"
                },
                "orientation": {
                    "description": "The orientation of the Display, either landscape or portrait",
                    "type": "string"
                },
                "resolution": {
                    "description": "The resolution of the Display expressed as a string in the format WxH",
                    "type": "string"
                },
                "commercialLicence": {
                    "description": "Status of the commercial licence for this Display. 0 - Not licensed, 1 - licensed, 2 - trial licence, 3 - not applicable",
                    "type": "integer"
                },
                "teamViewerSerial": {
                    "description": "The TeamViewer serial number for this Display",
                    "type": "string"
                },
                "webkeySerial": {
                    "description": "The Webkey serial number for this Display",
                    "type": "string"
                },
                "groupsWithPermissions": {
                    "description": "A comma separated list of groups/users with permissions to this Display",
                    "type": "string"
                },
                "createdDt": {
                    "description": "The datetime this entity was created",
                    "type": "string"
                },
                "modifiedDt": {
                    "description": "The datetime this entity was last modified",
                    "type": "string"
                },
                "folderId": {
                    "description": "The id of the Folder this Display belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Display",
                    "type": "integer"
                },
                "countFaults": {
                    "description": "The count of Player reported faults",
                    "type": "integer"
                },
                "lanIpAddress": {
                    "description": "LAN IP Address, if available on the Player",
                    "type": "string"
                },
                "syncGroupId": {
                    "description": "The Display Group ID this Display is synced to",
                    "type": "integer"
                },
                "osVersion": {
                    "description": "The OS version of the Display",
                    "type": "string"
                },
                "osSdk": {
                    "description": "The SDK version of the Display",
                    "type": "string"
                },
                "manufacturer": {
                    "description": "The manufacturer of the Display",
                    "type": "string"
                },
                "brand": {
                    "description": "The brand of the Display",
                    "type": "string"
                },
                "model": {
                    "description": "The model of the Display",
                    "type": "string"
                }
            }
        },
        "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": "Criteria for this dynamic group. A comma separated set of regular expressions to apply",
                    "type": "string"
                },
                "dynamicCriteriaLogicalOperator": {
                    "description": "Which logical operator should be used when filtering by multiple dynamic criteria? OR|AND",
                    "type": "string"
                },
                "dynamicCriteriaTags": {
                    "description": "Criteria for this dynamic group. A comma separated set of tags to apply",
                    "type": "string"
                },
                "dynamicCriteriaExactTags": {
                    "description": "Flag indicating whether to filter by exact Tag match",
                    "type": "integer"
                },
                "dynamicCriteriaTagsLogicalOperator": {
                    "description": "Which logical operator should be used when filtering by multiple Tags? OR|AND",
                    "type": "string"
                },
                "userId": {
                    "description": "The UserId who owns this display group",
                    "type": "integer"
                },
                "tags": {
                    "description": "Tags associated with this Display Group, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "bandwidthLimit": {
                    "description": "The display bandwidth limit",
                    "type": "integer"
                },
                "groupsWithPermissions": {
                    "description": "A comma separated list of groups/users with permissions to this DisplayGroup",
                    "type": "string"
                },
                "createdDt": {
                    "description": "The datetime this entity was created",
                    "type": "string"
                },
                "modifiedDt": {
                    "description": "The datetime this entity was last modified",
                    "type": "string"
                },
                "folderId": {
                    "description": "The id of the Folder this Display Group belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Display Group",
                    "type": "integer"
                },
                "ref1": {
                    "description": "Optional Reference 1",
                    "type": "string"
                },
                "ref2": {
                    "description": "Optional Reference 2",
                    "type": "string"
                },
                "ref3": {
                    "description": "Optional Reference 3",
                    "type": "string"
                },
                "ref4": {
                    "description": "Optional Reference 4",
                    "type": "string"
                },
                "ref5": {
                    "description": "Optional Reference 5",
                    "type": "string"
                }
            }
        },
        "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"
                    }
                }
            }
        },
        "DisplayType": {
            "properties": {
                "displayTypeId": {
                    "description": "The ID for this DisplayType",
                    "type": "integer"
                },
                "displayType": {
                    "description": "The Name for this DisplayType",
                    "type": "string"
                }
            }
        },
        "Folder": {
            "properties": {
                "id": {
                    "description": "The ID of this Folder",
                    "type": "integer"
                },
                "type": {
                    "description": "The type of folder (home or root)",
                    "type": "string"
                },
                "text": {
                    "description": "The name of this Folder",
                    "type": "string"
                },
                "parentId": {
                    "description": "The folderId of the parent of this Folder",
                    "type": "integer"
                },
                "isRoot": {
                    "description": "Flag indicating whether this is root Folder",
                    "type": "integer"
                },
                "children": {
                    "description": "An array of children folderIds",
                    "type": "string"
                }
            }
        },
        "Font": {
            "properties": {
                "id": {
                    "description": "The Font ID",
                    "type": "integer"
                },
                "createdAt": {
                    "description": "The Font created date",
                    "type": "string"
                },
                "modifiedAt": {
                    "description": "The Font modified date",
                    "type": "string"
                },
                "modifiedBy": {
                    "description": "The name of the user that modified this font last",
                    "type": "string"
                },
                "name": {
                    "description": "The Font name",
                    "type": "string"
                },
                "fileName": {
                    "description": "The Font file name",
                    "type": "string"
                },
                "familyName": {
                    "description": "The Font family name",
                    "type": "string"
                },
                "size": {
                    "description": "The Font file size in bytes",
                    "type": "integer"
                },
                "md5": {
                    "description": "A MD5 checksum of the stored font file",
                    "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"
                },
                "parentId": {
                    "description": "The parentId, if this Layout has a draft",
                    "type": "integer"
                },
                "publishedStatusId": {
                    "description": "The Status Id",
                    "type": "integer"
                },
                "publishedStatus": {
                    "description": "The Published Status (Published, Draft or Pending Approval",
                    "type": "string"
                },
                "publishedDate": {
                    "description": "The Published Date",
                    "type": "string"
                },
                "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"
                },
                "orientation": {
                    "description": "The Layout Orientation",
                    "type": "string"
                },
                "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"
                },
                "enableStat": {
                    "description": "Flag indicating whether the Layout stat is enabled",
                    "type": "integer"
                },
                "autoApplyTransitions": {
                    "description": "Flag indicating whether the default transitions should be applied to this Layout",
                    "type": "integer"
                },
                "code": {
                    "description": "Code identifier for this Layout",
                    "type": "string"
                },
                "isLocked": {
                    "description": "Is this layout locked by another user?",
                    "type": "boolean"
                },
                "regions": {
                    "description": "An array of Regions belonging to this Layout",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Region"
                    }
                },
                "tags": {
                    "description": "Tags associated with this Layout, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "folderId": {
                    "description": "The id of the Folder this Layout belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Layout",
                    "type": "integer"
                }
            }
        },
        "LayoutOnCampaign": {
            "properties": {
                "layout": {
                    "description": "The Layout name (readonly)",
                    "type": "string"
                },
                "layoutCampaignId": {
                    "description": "The Layout campaignId (readonly)",
                    "type": "string"
                },
                "ownerId": {
                    "description": "The owner id (readonly))",
                    "type": "integer"
                },
                "duration": {
                    "description": "The duration (readonly))",
                    "type": "integer"
                },
                "dayPart": {
                    "description": "The dayPart (readonly)",
                    "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"
                },
                "sessionHistoryId": {
                    "description": "Session history id.",
                    "type": "integer"
                },
                "userId": {
                    "description": "User id.",
                    "type": "integer"
                }
            }
        },
        "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": "string"
                },
                "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, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "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": "DEPRECATED: 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"
                },
                "enableStat": {
                    "description": "The option to enable the collection of Media Proof of Play statistics",
                    "type": "string"
                },
                "orientation": {
                    "description": "The orientation of the Media file",
                    "type": "string"
                },
                "width": {
                    "description": "The width of the Media file",
                    "type": "integer"
                },
                "height": {
                    "description": "The height of the Media file",
                    "type": "integer"
                },
                "folderId": {
                    "description": "The id of the Folder this Media belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Media",
                    "type": "integer"
                }
            }
        },
        "MenuBoard": {
            "properties": {
                "menuId": {
                    "description": "The Menu Board Id",
                    "type": "integer"
                },
                "name": {
                    "description": "The Menu Board name",
                    "type": "string"
                },
                "description": {
                    "description": "The Menu Board description",
                    "type": "string"
                },
                "code": {
                    "description": "The Menu Board code identifier",
                    "type": "string"
                },
                "userId": {
                    "description": "The Menu Board owner Id",
                    "type": "integer"
                },
                "modifiedDt": {
                    "description": "The Menu Board last modified date",
                    "type": "integer"
                },
                "folderId": {
                    "description": "The Id of the Folder this Menu Board belongs to",
                    "type": "string"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Menu Board",
                    "type": "integer"
                },
                "groupsWithPermissions": {
                    "description": "A comma separated list of Groups/Users that have permission to this menu Board",
                    "type": "string"
                }
            }
        },
        "MenuBoardCategory": {
            "properties": {
                "menuCategoryId": {
                    "description": "The Menu Board Category Id",
                    "type": "integer"
                },
                "menuId": {
                    "description": "The Menu Board Id",
                    "type": "integer"
                },
                "name": {
                    "description": "The Menu Board Category name",
                    "type": "string"
                },
                "description": {
                    "description": "The Menu Board Category description",
                    "type": "string"
                },
                "code": {
                    "description": "The Menu Board Category code identifier",
                    "type": "string"
                },
                "mediaId": {
                    "description": "The Menu Board Category associated mediaId",
                    "type": "integer"
                }
            }
        },
        "MenuBoardProduct": {
            "properties": {
                "menuProductId": {
                    "description": "The Menu Board Product Id",
                    "type": "integer"
                },
                "menuCategoryId": {
                    "description": "The Menu Board Category Id",
                    "type": "integer"
                },
                "menuId": {
                    "description": "The Menu Board Id",
                    "type": "integer"
                },
                "name": {
                    "description": "The Menu Board Category name",
                    "type": "string"
                },
                "price": {
                    "description": "The Menu Board Product price",
                    "type": "number",
                    "format": "double"
                },
                "description": {
                    "description": "The Menu Board Product description",
                    "type": "string"
                },
                "code": {
                    "description": "The Menu Board Product code identifier",
                    "type": "string"
                },
                "displayOrder": {
                    "description": "The Menu Board Product display order, used for sorting",
                    "type": "integer"
                },
                "availability": {
                    "description": "The Menu Board Product availability",
                    "type": "integer"
                },
                "allergyInfo": {
                    "description": "The Menu Board Product allergy information",
                    "type": "string"
                },
                "calories": {
                    "description": "The Menu Board Product allergy information",
                    "type": "integer"
                },
                "mediaId": {
                    "description": "The Menu Board Product associated mediaId",
                    "type": "integer"
                },
                "productOptions": {
                    "description": "The Menu Board Product array of options",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "MenuBoardProductOption": {
            "properties": {
                "menuProductId": {
                    "description": "The Menu Product ID that this Option belongs to",
                    "type": "integer"
                },
                "option": {
                    "description": "The option name",
                    "type": "string"
                },
                "value": {
                    "description": "The option value",
                    "type": "string"
                }
            }
        },
        "Module": {
            "properties": {
                "moduleId": {
                    "description": "The ID of this Module",
                    "type": "integer"
                },
                "name": {
                    "description": "Module Name",
                    "type": "string"
                },
                "author": {
                    "description": "Module Author",
                    "type": "string"
                },
                "description": {
                    "description": "Description of the Module",
                    "type": "string"
                },
                "icon": {
                    "description": "An icon to use in the toolbar",
                    "type": "string"
                },
                "type": {
                    "description": "The type code for this module",
                    "type": "string"
                },
                "legacyTypes": {
                    "description": "Legacy type codes for this module",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/LegacyType"
                    }
                },
                "dataType": {
                    "description": "The data type of the data expected to be returned by this modules data provider",
                    "type": "string"
                },
                "group": {
                    "description": "The group details for this module",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dataCacheKey": {
                    "description": "The cache key used when requesting data",
                    "type": "string"
                },
                "fallbackData": {
                    "description": "Is fallback data allowed for this module? Only applicable for a Data Widget",
                    "type": "integer"
                },
                "regionSpecific": {
                    "description": "Is specific to a Layout or can be uploaded to the Library?",
                    "type": "integer"
                },
                "schemaVersion": {
                    "description": "The schema version of the module",
                    "type": "integer"
                },
                "compatibilityClass": {
                    "description": "The compatibility class of the module",
                    "type": "string"
                },
                "showIn": {
                    "description": "A flag indicating whether the module should be excluded from the Layout Editor",
                    "type": "string"
                },
                "assignable": {
                    "description": "A flag indicating whether the module is assignable to a Layout",
                    "type": "integer"
                },
                "hasThumbnail": {
                    "description": "Does this module have a thumbnail to render?",
                    "type": "integer"
                },
                "thumbnail": {
                    "description": "This is the location to a module's thumbnail",
                    "type": "string"
                },
                "renderAs": {
                    "description": "Should be rendered natively by the Player or via the CMS (native|html)",
                    "type": "string"
                },
                "class": {
                    "description": "Class Name including namespace",
                    "type": "string"
                },
                "validatorClass": {
                    "description": "Validator class name including namespace",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "properties": {
                    "description": "Properties to display in the property panel and supply to stencils",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Property"
                    }
                },
                "onInitialize": {
                    "description": "JavaScript function run when a module is initialised, before data is returned",
                    "type": "string"
                },
                "onParseData": {
                    "description": "Data Parser run against each data item applicable when a dataType is present",
                    "type": "string"
                },
                "onDataLoad": {
                    "description": "A load function to run when the widget first fetches data",
                    "type": "string"
                },
                "onRender": {
                    "description": "JavaScript function run when a module is rendered, after data has been returned",
                    "type": "string"
                },
                "onVisible": {
                    "description": "JavaScript function run when a module becomes visible",
                    "type": "string"
                },
                "sampleData": {
                    "description": "Optional sample data item, only applicable when a dataType is present",
                    "type": "string"
                },
                "enabled": {
                    "description": "A flag indicating whether this module is enabled",
                    "type": "integer"
                },
                "previewEnabled": {
                    "description": "A flag indicating whether the Layout designer should render a preview of this module",
                    "type": "integer"
                },
                "defaultDuration": {
                    "description": "The default duration for Widgets of this Module when the user has not set a duration.",
                    "type": "integer"
                },
                "settings": {
                    "description": "An array of additional module specific settings",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Property"
                    }
                },
                "propertyGroups": {
                    "description": "An array of additional module specific group properties",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PropertyGroup"
                    }
                },
                "requiredElements": {
                    "description": "An array of required elements",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "isInstalled": {
                    "description": "$isInstalled Is this module installed?",
                    "type": "boolean"
                },
                "isError": {
                    "description": "$isError Does this module have any errors?",
                    "type": "boolean"
                },
                "errors": {
                    "description": "$errors An array of errors this module has.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "ModuleTemplate": {
            "properties": {
                "templateId": {
                    "description": "The templateId",
                    "type": "string"
                },
                "type": {
                    "description": "Type of template (static|element|stencil)",
                    "type": "string"
                },
                "extends": {
                    "description": "If this template extends another",
                    "$ref": "#/definitions/Extend"
                },
                "dataType": {
                    "description": "The datatype of this template",
                    "type": "string"
                },
                "title": {
                    "description": "The title",
                    "type": "string"
                },
                "description": {
                    "description": "Description of the Module Template",
                    "type": "string"
                },
                "icon": {
                    "description": "Icon",
                    "type": "string"
                },
                "thumbnail": {
                    "description": "",
                    "type": "string"
                },
                "showIn": {
                    "description": "A flag indicating whether the template should be excluded from the Layout Editor",
                    "type": "string"
                },
                "properties": {
                    "description": "Properties",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Property"
                    }
                },
                "isVisible": {
                    "description": "Is Visible?",
                    "type": "boolean"
                },
                "isEnabled": {
                    "description": "Is Enabled?",
                    "type": "boolean"
                },
                "propertyGroups": {
                    "description": "An array of additional module specific group properties",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PropertyGroup"
                    }
                },
                "stencil": {
                    "description": "A stencil, if needed",
                    "$ref": "#/definitions/Stencil"
                },
                "assets": {
                    "description": "",
                    "type": "array",
                    "items": {}
                },
                "groupsWithPermissions": {
                    "description": "A comma separated list of groups/users with permissions to this template",
                    "type": "string"
                }
            }
        },
        "Notification": {
            "properties": {
                "notificationId": {
                    "description": "The Notifcation ID",
                    "type": "integer"
                },
                "createDt": {
                    "description": "Create Date as Unix Timestamp",
                    "type": "integer"
                },
                "releaseDt": {
                    "description": "Release Date as Unix Timestamp",
                    "type": "integer"
                },
                "subject": {
                    "description": "The subject line",
                    "type": "string"
                },
                "type": {
                    "description": "The Notification type",
                    "type": "string"
                },
                "body": {
                    "description": "The HTML body of the notification",
                    "type": "string"
                },
                "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"
                },
                "filename": {
                    "description": "Attachment filename",
                    "type": "string"
                },
                "originalFileName": {
                    "description": "Attachment originalFileName",
                    "type": "string"
                },
                "nonusers": {
                    "description": "Additional email addresses to which a saved report will be sent",
                    "type": "string"
                },
                "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"
                    }
                }
            }
        },
        "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"
                }
            }
        },
        "PlayerFault": {
            "properties": {
                "playerFaultId": {
                    "description": "The Fault Id",
                    "type": "integer"
                },
                "displayId": {
                    "description": "The Display Id",
                    "type": "integer"
                },
                "incidentDt": {
                    "description": "The Date the error occured",
                    "type": "string"
                },
                "expires": {
                    "description": "The Date the error expires",
                    "type": "string"
                },
                "code": {
                    "description": "The Code associated with the fault",
                    "type": "integer"
                },
                "reason": {
                    "description": "The Reason for the fault",
                    "type": "string"
                },
                "layoutId": {
                    "description": "The Layout Id",
                    "type": "integer"
                },
                "regionId": {
                    "description": "The Region Id",
                    "type": "integer"
                },
                "scheduleId": {
                    "description": "The Schedule Id",
                    "type": "integer"
                },
                "widgetId": {
                    "description": "The Widget Id",
                    "type": "integer"
                },
                "mediaId": {
                    "description": "The Media Id",
                    "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"
                },
                "playerShowVersion": {
                    "description": "Player version to show",
                    "type": "string"
                },
                "createdAt": {
                    "description": "The Player Version created date",
                    "type": "string"
                },
                "modifiedAt": {
                    "description": "The Player Version modified date",
                    "type": "string"
                },
                "modifiedBy": {
                    "description": "The name of the user that modified this Player Version last",
                    "type": "string"
                },
                "fileName": {
                    "description": "The Player Version file name",
                    "type": "string"
                },
                "size": {
                    "description": "The Player Version file size in bytes",
                    "type": "integer"
                },
                "md5": {
                    "description": "A MD5 checksum of the stored Player Version file",
                    "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"
                },
                "regionId": {
                    "description": "The RegionId if this Playlist is specific to a Region",
                    "type": "integer"
                },
                "isDynamic": {
                    "description": "Flag indicating if this is a dynamic Playlist",
                    "type": "integer"
                },
                "filterMediaName": {
                    "description": "Filter Name for a Dynamic Playlist",
                    "type": "string"
                },
                "filterMediaNameLogicalOperator": {
                    "description": "Which logical operator should be used when filtering by multiple Plalust names? OR|AND",
                    "type": "string"
                },
                "filterMediaTags": {
                    "description": "Filter Tags for a Dynamic Playlist",
                    "type": "string"
                },
                "filterExactTags": {
                    "description": "Flag indicating whether to filter by exact Tag match",
                    "type": "integer"
                },
                "filterMediaTagsLogicalOperator": {
                    "description": "Which logical operator should be used when filtering by multiple Tags? OR|AND",
                    "type": "string"
                },
                "filterFolderId": {
                    "description": "The ID of the folder to filter media items by",
                    "type": "integer"
                },
                "maxNumberOfItems": {
                    "description": "Maximum number of Media items matching dynamic Playlist filters",
                    "type": "integer"
                },
                "createdDt": {
                    "description": "The datetime this entity was created",
                    "type": "string"
                },
                "modifiedDt": {
                    "description": "The datetime this entity was last modified",
                    "type": "string"
                },
                "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"
                },
                "requiresDurationUpdate": {
                    "description": "Flag indicating whether this Playlists requires a duration update",
                    "type": "integer"
                },
                "enableStat": {
                    "description": "The option to enable the collection of Playlist Proof of Play statistics",
                    "type": "string"
                },
                "tags": {
                    "description": "Tags associated with this Playlist, array of TagLink objects",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TagLink"
                    }
                },
                "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"
                    }
                },
                "folderId": {
                    "description": "The id of the Folder this Playlist belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Playlist",
                    "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"
                },
                "type": {
                    "description": "Region Type, zone, playlist, frame or canvas",
                    "type": "string"
                },
                "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"
                },
                "syncKey": {
                    "description": "The syncKey of this Region",
                    "type": "string"
                },
                "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"
                    }
                },
                "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"
                },
                "isDrawer": {
                    "description": "Flag, whether this region is used as an interactive drawer attached to a layout.",
                    "type": "integer"
                },
                "regionPlaylist": {
                    "description": "This Regions Playlist - null if getPlaylist() has not been called.",
                    "$ref": "#/definitions/Playlist"
                }
            }
        },
        "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"
                }
            }
        },
        "ReportSchedule": {
            "properties": {
                "owner": {
                    "description": "The username of the User that owns this report schedule",
                    "type": "string"
                },
                "userId": {
                    "description": "The ID of the User that owns this report schedule",
                    "type": "integer"
                }
            }
        },
        "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"
                }
            }
        },
        "SavedReport": {
            "properties": {
                "savedReportId": {
                    "description": "Saved report ID",
                    "type": "integer"
                },
                "saveAs": {
                    "description": "Saved report name As",
                    "type": "string"
                },
                "reportScheduleId": {
                    "description": "Report schedule Id of the saved report",
                    "type": "integer"
                },
                "reportScheduleName": {
                    "description": "Report schedule name of the saved report",
                    "type": "string"
                },
                "reportName": {
                    "description": "Report name",
                    "type": "string"
                },
                "generatedOn": {
                    "description": "Saved report generated on",
                    "type": "string"
                },
                "owner": {
                    "description": "The username of the User that owns this saved report",
                    "type": "string"
                },
                "userId": {
                    "description": "The ID of the User that owns this saved report",
                    "type": "integer"
                },
                "originalFileName": {
                    "description": "Original name of the saved report media file",
                    "type": "string"
                },
                "storedAs": {
                    "description": "Stored As",
                    "type": "string"
                },
                "schemaVersion": {
                    "description": "Schema Version",
                    "type": "integer"
                },
                "fileName": {
                    "description": "The Saved Report file name",
                    "type": "string"
                },
                "size": {
                    "description": "The Saved Report file size in bytes",
                    "type": "integer"
                },
                "md5": {
                    "description": "A MD5 checksum of the stored Saved Report file",
                    "type": "string"
                }
            }
        },
        "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"
                    }
                },
                "scheduleReminders": {
                    "description": "Schedule Reminders assigned to this Scheduled Event.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ScheduleReminder"
                    }
                },
                "criteria": {
                    "description": "Schedule Criteria assigned to this Scheduled Event.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ScheduleCriteria"
                    }
                },
                "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"
                },
                "recurrenceMonthlyRepeatsOn": {
                    "description": "Recurrence monthly repeats on - 0 is day of month, 1 is weekday of week",
                    "type": "integer"
                },
                "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"
                },
                "shareOfVoice": {
                    "description": "Seconds (0-3600) of each full hour that is scheduled that this Layout should occupy",
                    "type": "integer"
                },
                "maxPlaysPerHour": {
                    "description": "The maximum number of plays per hour per display for this event",
                    "type": "integer"
                },
                "isGeoAware": {
                    "description": "Flag (0-1), whether this event is using Geo Location",
                    "type": "integer"
                },
                "geoLocation": {
                    "description": "Geo JSON representing the area of this event",
                    "type": "string"
                },
                "actionTriggerCode": {
                    "description": "For Action event type, Action trigger code",
                    "type": "string"
                },
                "actionType": {
                    "description": "For Action event type, the type of the Action (navigate to Layout or Command)",
                    "type": "string"
                },
                "actionLayoutCode": {
                    "description": "For Action event type and navigate to Layout Action type, the Layout code",
                    "type": "string"
                },
                "parentCampaignId": {
                    "description": "If the schedule should be considered part of a larger campaign",
                    "type": "integer"
                },
                "syncGroupId": {
                    "description": "For sync events, the id the the sync group",
                    "type": "integer"
                },
                "dataSetId": {
                    "description": "For data connector events, the dataSetId",
                    "type": "integer"
                },
                "dataSetParams": {
                    "description": "For data connector events, the data set parameters",
                    "type": "integer"
                },
                "modifiedBy": {
                    "description": "The userId of the user that last modified this Schedule",
                    "type": "integer"
                },
                "createdOn": {
                    "description": "The Date this Schedule was created on",
                    "type": "string"
                },
                "updatedOn": {
                    "description": "The Date this Schedule was las updated on",
                    "type": "string"
                },
                "name": {
                    "description": "The name of this Scheduled Event",
                    "type": "string"
                }
            }
        },
        "ScheduleCriteria": {},
        "ScheduleExclusion": {
            "properties": {
                "scheduleExclusionId": {
                    "description": "Excluded Schedule ID",
                    "type": "integer"
                },
                "eventId": {
                    "description": "The eventId that this Excluded Schedule applies to",
                    "type": "integer"
                },
                "fromDt": {
                    "description": "A Unix timestamp representing the from date of an excluded recurring event in CMS time.",
                    "type": "integer"
                },
                "toDt": {
                    "description": "A Unix timestamp representing the to date of an excluded recurring event in CMS time.",
                    "type": "integer"
                }
            }
        },
        "ScheduleReminder": {
            "properties": {
                "scheduleReminderId": {
                    "description": "Schedule Reminder ID",
                    "type": "integer"
                },
                "eventId": {
                    "description": "The event ID of the schedule reminder",
                    "type": "integer"
                },
                "value": {
                    "description": "An integer number to define minutes, hours etc.",
                    "type": "integer"
                },
                "type": {
                    "description": "The type of the reminder (i.e. Minute, Hour, Day, Week, Month)",
                    "type": "integer"
                },
                "option": {
                    "description": "The options regarding sending a reminder for an event. (i.e., Before start, After start, Before end, After end)",
                    "type": "integer"
                },
                "isEmail": {
                    "description": "Email flag for schedule reminder",
                    "type": "integer"
                },
                "reminderDt": {
                    "description": "A date that indicates the reminder date",
                    "type": "integer"
                },
                "lastReminderDt": {
                    "description": "Last reminder date a reminder was sent",
                    "type": "integer"
                }
            }
        },
        "SearchResult": {},
        "SearchResults": {},
        "SyncGroup": {
            "properties": {
                "syncGroupId": {
                    "description": "The ID of this Entity",
                    "type": "integer"
                },
                "name": {
                    "description": "The name of this Entity",
                    "type": "string"
                },
                "createdDt": {
                    "description": "The datetime this entity was created",
                    "type": "string"
                },
                "modifiedDt": {
                    "description": "The datetime this entity was last modified"
                },
                "modifiedBy": {
                    "description": "The ID of the user that last modified this sync group",
                    "type": "integer"
                },
                "modifiedByName": {
                    "description": "The name of the user that last modified this sync group",
                    "type": "string"
                },
                "ownerId": {
                    "description": "The ID of the owner of this sync group",
                    "type": "integer"
                },
                "owner": {
                    "description": "The name of the owner of this sync group",
                    "type": "string"
                },
                "syncPublisherPort": {
                    "description": "The publisher port number",
                    "type": "integer"
                },
                "syncSwitchDelay": {
                    "description": "The delay (in ms) when displaying the changes in content",
                    "type": "integer"
                },
                "syncVideoPauseDelay": {
                    "description": "The delay (in ms) before unpausing the video on start.",
                    "type": "integer"
                },
                "leadDisplayId": {
                    "description": "The ID of the lead Display for this sync group",
                    "type": "integer"
                },
                "leadDisplay": {
                    "description": "The name of the lead Display for this sync group",
                    "type": "string"
                },
                "folderId": {
                    "description": "The id of the Folder this Sync Group belongs to",
                    "type": "integer"
                },
                "permissionsFolderId": {
                    "description": "The id of the Folder responsible for providing permissions for this Sync Group",
                    "type": "integer"
                }
            }
        },
        "Tag": {
            "properties": {
                "tagId": {
                    "description": "The Tag ID",
                    "type": "integer"
                },
                "tag": {
                    "description": "The Tag Name",
                    "type": "string"
                },
                "isSystem": {
                    "description": "Flag, whether the tag is a system tag",
                    "type": "integer"
                },
                "isRequired": {
                    "description": "Flag, whether the tag requires additional values",
                    "type": "integer"
                },
                "options": {
                    "description": "An array of options assigned to this Tag"
                }
            }
        },
        "TagLink": {
            "properties": {
                "tag": {
                    "description": "The Tag",
                    "type": "string"
                },
                "tagId": {
                    "description": "The Tag ID",
                    "type": "integer"
                },
                "value": {
                    "description": "The Tag Value",
                    "type": "string"
                }
            }
        },
        "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"
                },
                "homeFolderId": {
                    "description": "This users home folder",
                    "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"
                    }
                },
                "playlists": {
                    "description": "An array of Playlists owned by this User",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Playlist"
                    }
                },
                "displayGroups": {
                    "description": "An array of Display Groups owned by this User",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DisplayGroup"
                    }
                },
                "dayParts": {
                    "description": "An array of Dayparts owned by this User",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DayPart"
                    }
                },
                "isSystemNotification": {
                    "description": "Does this User receive system notifications.",
                    "type": "integer"
                },
                "isDisplayNotification": {
                    "description": "Does this User receive system notifications.",
                    "type": "integer"
                },
                "isDataSetNotification": {
                    "description": "Does this User receive DataSet notifications.",
                    "type": "integer"
                },
                "isLayoutNotification": {
                    "description": "Does this User receive Layout notifications.",
                    "type": "integer"
                },
                "isLibraryNotification": {
                    "description": "Does this User receive Library notifications.",
                    "type": "integer"
                },
                "isReportNotification": {
                    "description": "Does this User receive Report notifications.",
                    "type": "integer"
                },
                "isScheduleNotification": {
                    "description": "Does this User receive Schedule notifications.",
                    "type": "integer"
                },
                "isCustomNotification": {
                    "description": "Does this User receive Custom notifications.",
                    "type": "integer"
                },
                "twoFactorTypeId": {
                    "description": "The two factor type id",
                    "type": "integer"
                },
                "twoFactorSecret": {
                    "description": "Two Factor authorisation shared secret for this user",
                    "type": "string"
                },
                "twoFactorRecoveryCodes": {
                    "description": "Two Factor authorisation recovery codes",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "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"
                },
                "description": {
                    "description": "Description of this User Group",
                    "type": "string"
                },
                "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"
                },
                "isDataSetNotification": {
                    "description": "Does this Group receive DataSet notifications.",
                    "type": "integer"
                },
                "isLayoutNotification": {
                    "description": "Does this Group receive Layout notifications.",
                    "type": "integer"
                },
                "isLibraryNotification": {
                    "description": "Does this Group receive Library notifications.",
                    "type": "integer"
                },
                "isReportNotification": {
                    "description": "Does this Group receive Report notifications.",
                    "type": "integer"
                },
                "isScheduleNotification": {
                    "description": "Does this Group receive Schedule notifications.",
                    "type": "integer"
                },
                "isCustomNotification": {
                    "description": "Does this Group receive Custom notifications.",
                    "type": "integer"
                },
                "isShownForAddUser": {
                    "description": "Is this Group shown in the list of choices when onboarding a new user",
                    "type": "integer"
                },
                "defaultHomepageId": {
                    "description": "Default Home page for new users",
                    "type": "string"
                },
                "features": {
                    "description": "Features this User Group has direct access to",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "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"
                },
                "fromDt": {
                    "description": "Widget From Date",
                    "type": "integer"
                },
                "toDt": {
                    "description": "Widget To Date",
                    "type": "integer"
                },
                "schemaVersion": {
                    "description": "Widget Schema Version",
                    "type": "integer"
                },
                "transitionIn": {
                    "description": "Transition Type In",
                    "type": "integer"
                },
                "transitionOut": {
                    "description": "Transition Type out",
                    "type": "integer"
                },
                "transitionDurationIn": {
                    "description": "Transition duration in",
                    "type": "integer"
                },
                "transitionDurationOut": {
                    "description": "Transition duration out",
                    "type": "integer"
                },
                "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"
                    }
                },
                "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"
                }
            }
        },
        "WidgetData": {
            "properties": {
                "id": {
                    "description": "The ID",
                    "type": "integer"
                },
                "widgetId": {
                    "description": "The Widget ID",
                    "type": "integer"
                },
                "data": {
                    "description": "Array of data properties depending on the widget data type this data is for",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "displayOrder": {
                    "description": "The Display Order",
                    "type": "integer"
                },
                "createdDt": {
                    "description": "The datetime this entity was created"
                },
                "modifiedDt": {
                    "description": "The datetime this entity was last modified"
                }
            }
        },
        "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"
                }
            }
        },
        "Element": {},
        "ElementGroup": {},
        "Extend": {},
        "LegacyType": {},
        "Option": {
            "properties": {
                "name": {
                    "description": "Name",
                    "type": "string"
                },
                "image": {
                    "description": "Image: optional image asset",
                    "type": "string"
                },
                "set": {
                    "description": "Set",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "description": "Title: shown in the dropdown/select",
                    "type": "string"
                }
            }
        },
        "Property": {
            "properties": {
                "id": {
                    "description": "ID, saved as a widget option",
                    "type": "string"
                },
                "type": {
                    "description": "Type, determines the field type",
                    "type": "string"
                },
                "title": {
                    "description": "Title: shown in the property panel",
                    "type": "string"
                },
                "helpText": {
                    "description": "Help Text: shown in the property panel",
                    "type": "string"
                },
                "default": {
                    "description": "An optional default value",
                    "type": "string"
                }
            }
        },
        "PropertyGroup": {},
        "Rule": {},
        "Stencil": {
            "properties": {
                "elementGroups": {
                    "description": "An array of element groups",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ElementGroup"
                    }
                }
            }
        },
        "Test": {}
    },
    "parameters": {
        "actionId": {
            "name": "actionId",
            "in": "path",
            "description": "Action ID to edit",
            "required": true,
            "type": "integer"
        },
        "layoutId": {
            "name": "layoutId",
            "in": "formData",
            "description": "LayoutId associted with this Action",
            "required": true,
            "type": "integer"
        },
        "actionType": {
            "name": "actionType",
            "in": "formData",
            "description": "Action type, next, previous, navLayout, navWidget",
            "required": true,
            "type": "string"
        },
        "target": {
            "name": "target",
            "in": "formData",
            "description": "Target for this action, screen or region",
            "required": true,
            "type": "string"
        },
        "targetId": {
            "name": "targetId",
            "in": "formData",
            "description": "The id of the target for this action - regionId if the target is set to region",
            "required": false,
            "type": "string"
        },
        "source": {
            "name": "source",
            "in": "formData",
            "description": "Source for this action layout, region or widget",
            "required": true,
            "type": "string"
        },
        "sourceId": {
            "name": "sourceId",
            "in": "formData",
            "description": "The id of the source object, layoutId, regionId or widgetId",
            "required": true,
            "type": "integer"
        },
        "triggerType": {
            "name": "triggerType",
            "in": "formData",
            "description": "Action trigger type, touch or webhook",
            "required": true,
            "type": "string"
        },
        "triggerCode": {
            "name": "triggerCode",
            "in": "formData",
            "description": "Action trigger code",
            "required": false,
            "type": "string"
        },
        "widgetId": {
            "name": "widgetId",
            "in": "formData",
            "description": "For navWidget actionType, the WidgetId to navigate to",
            "required": false,
            "type": "integer"
        },
        "layoutCode": {
            "name": "layoutCode",
            "in": "formData",
            "description": "For navLayout, the Layout Code identifier to navigate to",
            "required": false,
            "type": "string"
        }
    },
    "responses": {
        "201": {
            "description": "successful operation",
            "schema": {
                "$ref": "#/definitions/Action"
            },
            "headers": {
                "Location": {
                    "description": "Location of the new record",
                    "type": "string"
                }
            }
        },
        "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": "folder",
            "description": "Folders"
        },
        {
            "name": "statistics",
            "description": "Statistics"
        },
        {
            "name": "user",
            "description": "Users"
        },
        {
            "name": "usergroup",
            "description": "User Groups"
        },
        {
            "name": "module",
            "description": "Modules and Widgets"
        },
        {
            "name": "command",
            "description": "Commands"
        },
        {
            "name": "dayPart",
            "description": "Dayparting"
        },
        {
            "name": "Player Software"
        },
        {
            "name": "tags",
            "description": "Tags"
        },
        {
            "name": "menuBoard",
            "description": "Menu Boards - feature preview, please do not use in production."
        }
    ],
    "externalDocs": {
        "description": "Manual",
        "url": "https://xibosignage.com/manual"
    }
}
