@reveldigital/reveldigital-mcp-server
Version:
MCP Server generated from OpenAPI spec for revel-digital-rest-api
413 lines (404 loc) • 123 kB
text/typescript
#!/usr/bin/env node
/**
* MCP Server generated from OpenAPI spec for revel-digital-rest-api vv1
* Generated on: 2025-08-18T18:49:44.749Z
*/
// Load environment variables from .env file
import dotenv from 'dotenv';
dotenv.config();
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
CallToolRequestSchema,
ListToolsRequestSchema,
ListPromptsRequestSchema,
GetPromptRequestSchema,
type Tool,
type CallToolResult,
type CallToolRequest,
type Prompt,
type GetPromptResult
} from "@modelcontextprotocol/sdk/types.js";
import { z, ZodError } from 'zod';
import { jsonSchemaToZod } from 'json-schema-to-zod';
import axios, { type AxiosRequestConfig, type AxiosError } from 'axios';
/**
* Type definition for JSON objects
*/
type JsonObject = Record<string, any>;
/**
* Interface for MCP Tool Definition
*/
interface McpToolDefinition {
name: string;
description: string;
inputSchema: any;
method: string;
pathTemplate: string;
executionParameters: { name: string, in: string }[];
requestBodyContentType?: string;
securityRequirements: any[];
}
/**
* Server configuration
*/
export const SERVER_NAME = "revel-digital-rest-api";
export const SERVER_VERSION = "v1";
export const API_BASE_URL = "https://api.reveldigital.com";
/**
* MCP Server instance
*/
const server = new Server(
{ name: SERVER_NAME, version: SERVER_VERSION },
{ capabilities: { tools: {}, prompts: {} } }
);
/**
* Map of tool definitions by name
*/
const toolDefinitionMap: Map<string, McpToolDefinition> = new Map([
["getaccount", {
name: "getaccount",
description: `Gets account details.`,
inputSchema: {"type":"object","properties":{}},
method: "get",
pathTemplate: "/account",
executionParameters: [],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putaccount", {
name: "putaccount",
description: `Updates an account.`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The account id"},"name":{"type":["string","null"],"description":"The account name"},"tags":{"type":["string","null"],"description":"Tags associated with this account"},"business_name":{"type":["string","null"],"description":"The business name"},"address_1":{"type":["string","null"],"description":"The address line 1"},"address_2":{"type":["string","null"],"description":"The address line 2"},"city":{"type":["string","null"],"description":"The city"},"state":{"type":["string","null"],"description":"The state"},"postal_code":{"type":["string","null"],"description":"The postal code"},"country":{"type":["string","null"],"description":"The country"},"phone":{"type":["string","null"],"description":"The phone number"},"fax":{"type":["string","null"],"description":"The fax number"},"primary_contact_id":{"type":["string","null"],"description":"The primary contact user id"},"secondary_contact_id":{"type":["string","null"],"description":"The secondary contact user id"},"created_on":{"type":["string","null"],"description":"The created on date","format":"date-time"},"timeZone":{"type":["string","null"],"description":"The time zone"},"logo_url":{"type":["string","null"],"description":"The logo url"}},"additionalProperties":false,"description":"Account"}}},
method: "put",
pathTemplate: "/account",
executionParameters: [],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getorganizations", {
name: "getorganizations",
description: `Gets organizations.`,
inputSchema: {"type":"object","properties":{}},
method: "get",
pathTemplate: "/account/organizations",
executionParameters: [],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getdevices", {
name: "getdevices",
description: `Gets all devices in an account.`,
inputSchema: {"type":"object","properties":{"Id":{"type":"string","description":"Unique identifier for the device."},"Take":{"type":"number","format":"int32","description":"Maximum number of items to retrieve in a query."},"Page":{"type":"number","format":"int32","description":"Current page number for paginated results."},"DeviceTypeId":{"type":"string","description":"Unique identifier for the type of device."},"GroupId":{"type":"array","items":{"type":"string"},"description":"List of unique identifiers for media groups to filter by."},"GroupName":{"type":"array","items":{"type":"string"},"description":"Collection of group names to filter by."},"IncludeSnap":{"type":"boolean","description":"Include the snapshot of the currently playing content. JPG format, base64 encoded."},"OrgId":{"type":"string","description":"Unique identifier for an organization to filter by."},"IsOnline":{"type":"boolean","description":"Filter devices by their online status."}}},
method: "get",
pathTemplate: "/devices",
executionParameters: [{"name":"Id","in":"query"},{"name":"Take","in":"query"},{"name":"Page","in":"query"},{"name":"DeviceTypeId","in":"query"},{"name":"GroupId","in":"query"},{"name":"GroupName","in":"query"},{"name":"IncludeSnap","in":"query"},{"name":"OrgId","in":"query"},{"name":"IsOnline","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postdevice", {
name: "postdevice",
description: `Registers a new device.`,
inputSchema: {"type":"object","properties":{"activation_code":{"type":"string","description":"Activation code"},"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The device name"},"tags":{"type":["string","null"],"description":"Tags associated with this device"},"timeZone":{"type":["string","null"],"description":"The timezone of the device"},"language_code":{"type":["string","null"],"description":"The language code of the device"},"group_id":{"type":["string","null"],"description":"The group id"},"last_service":{"type":["string","null"],"description":"The last service date","format":"date-time"},"mac_address":{"type":["string","null"],"description":"The MAC address of this device, is applicable"},"location":{"type":"object","properties":{"city":{"type":["string","null"],"description":"City"},"state":{"type":["string","null"],"description":"State"},"county":{"type":["string","null"],"description":"County"},"country":{"type":["string","null"],"description":"Country"},"postal_code":{"type":["string","null"],"description":"Postal code"},"address":{"type":["string","null"],"description":"Address"},"latitude":{"type":["number","null"],"description":"Latitude","format":"double"},"longitude":{"type":["number","null"],"description":"Longitude","format":"double"}},"additionalProperties":false},"beacon":{"type":"object","properties":{"distance":{"type":["number","null"],"format":"double"},"calibration":{"type":["number","null"],"format":"double"},"phone":{"type":["string","null"]},"emailAddress":{"type":["string","null"]},"website":{"type":["string","null"]},"devices":{"type":["array","null"],"items":{"type":"string"}},"rating":{"type":["number","null"],"format":"double"},"uuid":{"type":["string","null"]},"major":{"type":["string","null"]},"minor":{"type":["string","null"]},"notification_delay":{"type":["number","null"],"format":"int32"},"instance_id":{"type":["string","null"]},"namespace":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false,"description":"Device"}}},
method: "post",
pathTemplate: "/devices",
executionParameters: [{"name":"activation_code","in":"query"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getdevicebyid", {
name: "getdevicebyid",
description: `Gets a device by ID.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"}},"required":["id"]},
method: "get",
pathTemplate: "/devices/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putdevice", {
name: "putdevice",
description: `Updates a device.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"},"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The device name"},"tags":{"type":["string","null"],"description":"Tags associated with this device"},"timeZone":{"type":["string","null"],"description":"The timezone of the device"},"language_code":{"type":["string","null"],"description":"The language code of the device"},"group_id":{"type":["string","null"],"description":"The group id"},"last_service":{"type":["string","null"],"description":"The last service date","format":"date-time"},"mac_address":{"type":["string","null"],"description":"The MAC address of this device, is applicable"},"location":{"type":"object","properties":{"city":{"type":["string","null"],"description":"City"},"state":{"type":["string","null"],"description":"State"},"county":{"type":["string","null"],"description":"County"},"country":{"type":["string","null"],"description":"Country"},"postal_code":{"type":["string","null"],"description":"Postal code"},"address":{"type":["string","null"],"description":"Address"},"latitude":{"type":["number","null"],"description":"Latitude","format":"double"},"longitude":{"type":["number","null"],"description":"Longitude","format":"double"}},"additionalProperties":false},"beacon":{"type":"object","properties":{"distance":{"type":["number","null"],"format":"double"},"calibration":{"type":["number","null"],"format":"double"},"phone":{"type":["string","null"]},"emailAddress":{"type":["string","null"]},"website":{"type":["string","null"]},"devices":{"type":["array","null"],"items":{"type":"string"}},"rating":{"type":["number","null"],"format":"double"},"uuid":{"type":["string","null"]},"major":{"type":["string","null"]},"minor":{"type":["string","null"]},"notification_delay":{"type":["number","null"],"format":"int32"},"instance_id":{"type":["string","null"]},"namespace":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false,"description":"Device"}},"required":["id"]},
method: "put",
pathTemplate: "/devices/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["deletedevice", {
name: "deletedevice",
description: `Delete a device.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"}},"required":["id"]},
method: "delete",
pathTemplate: "/devices/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["patchdevice", {
name: "patchdevice",
description: `Patch a device. Patch allows partial updates by targeting specific properties of the device.
Uses the JSON Patch syntax (http://jsonpatch.com)`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"},"requestBody":{"type":"string","description":"Patch document"}},"required":["id"]},
method: "patch",
pathTemplate: "/devices/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json-patch+json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getdevicegroups", {
name: "getdevicegroups",
description: `Gets device groups in the account.`,
inputSchema: {"type":"object","properties":{"tree":{"type":"boolean","default":false,"description":"Optional hierarchical data format"},"id":{"type":"string","description":"Optional group id"},"take":{"type":"number","format":"int32","description":"Optional number of items to return"},"page":{"type":"number","format":"int32","description":"Optional number of page to return"}}},
method: "get",
pathTemplate: "/devices/groups",
executionParameters: [{"name":"tree","in":"query"},{"name":"id","in":"query"},{"name":"take","in":"query"},{"name":"page","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postdevicegroup", {
name: "postdevicegroup",
description: `Create a new device group.`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The group name"}},"additionalProperties":false,"description":"Device group"}}},
method: "post",
pathTemplate: "/devices/groups",
executionParameters: [],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putdevicegroup", {
name: "putdevicegroup",
description: `Updates a device group.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Group id"},"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The group name"}},"additionalProperties":false,"description":"Device group"}},"required":["id"]},
method: "put",
pathTemplate: "/devices/groups/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["deletedevicegroup", {
name: "deletedevicegroup",
description: `Group must be empty.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device group Id"}},"required":["id"]},
method: "delete",
pathTemplate: "/devices/groups/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getpingdata", {
name: "getpingdata",
description: `Gets device ping data by registration key.`,
inputSchema: {"type":"object","properties":{"key":{"type":"string","description":"Registration key"}}},
method: "get",
pathTemplate: "/devices/pingdata",
executionParameters: [{"name":"key","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getsnapshot", {
name: "getsnapshot",
description: `Gets current snapshot of the device screen. Image is returned as a JPEG image.`,
inputSchema: {"type":"object","properties":{"registrationKey":{"type":"string","description":"Device registration key"},"base64":{"type":"boolean","default":false,"description":"If true, the JPG image will be returned as a base64-encoded string"}},"required":["registrationKey"]},
method: "get",
pathTemplate: "/devices/{registrationKey}/snap",
executionParameters: [{"name":"registrationKey","in":"path"},{"name":"base64","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{}]
}],
["getdevicepingdata", {
name: "getdevicepingdata",
description: `Gets device ping data by registration key.`,
inputSchema: {"type":"object","properties":{"registrationKey":{"type":"string"}},"required":["registrationKey"]},
method: "get",
pathTemplate: "/devices/{registrationKey}/pingdata",
executionParameters: [{"name":"registrationKey","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{}]
}],
["postdevicescommands", {
name: "postdevicescommands",
description: `Sends a collection of commands to devices.`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"array","items":{"type":"object","properties":{"deviceId":{"type":["string","null"]},"commands":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"arg":{"type":"string","nullable":true}},"additionalProperties":false}}},"additionalProperties":false},"description":"Command set"}}},
method: "post",
pathTemplate: "/devices/commands",
executionParameters: [],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postdevicecommands", {
name: "postdevicecommands",
description: `Sends a collection of commands to a specific device.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"},"requestBody":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"arg":{"type":["string","null"]}},"additionalProperties":false},"description":"Commands"}},"required":["id"]},
method: "post",
pathTemplate: "/devices/{id}/commands",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postevent", {
name: "postevent",
description: `Create an event associated with a device.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Device Id"},"requestBody":{"type":"object","properties":{"session_id":{"type":["string","null"]},"event_name":{"type":["string","null"]},"properties":{"type":["object","null"],"additionalProperties":{"nullable":true}}},"additionalProperties":false,"description":"Event"}},"required":["id"]},
method: "post",
pathTemplate: "/devices/{id}/track",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getmedia", {
name: "getmedia",
description: `Gets all media in an account.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Optional Media Id"},"take":{"type":"number","format":"int32","description":"Optional number of items to return"},"page":{"type":"number","format":"int32","description":"Optional number of page to return"},"group_id":{"type":"array","items":{"type":"string"},"description":"Optional media group Id"},"group_name":{"type":"array","items":{"type":"string"},"description":"Optional group name to filter by"}}},
method: "get",
pathTemplate: "/media",
executionParameters: [{"name":"id","in":"query"},{"name":"take","in":"query"},{"name":"page","in":"query"},{"name":"group_id","in":"query"},{"name":"group_name","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postmediamultipart", {
name: "postmediamultipart",
description: `POST body must be in multipart/form-data format`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"string","description":"Request body (content type: multipart/form-data)"}}},
method: "post",
pathTemplate: "/media",
executionParameters: [],
requestBodyContentType: "multipart/form-data",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getmediabyid", {
name: "getmediabyid",
description: `Gets media item by ID.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Media Id"}},"required":["id"]},
method: "get",
pathTemplate: "/media/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putmedia", {
name: "putmedia",
description: `Update media asset properties.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Media Id"},"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The media name"},"group_id":{"type":["string","null"],"description":"The group id"},"tags":{"type":["string","null"],"description":"The tags associated with this media"},"advertiser_id":{"type":["string","null"],"description":"The advertiser id. Optional"},"is_shared":{"type":["boolean","null"],"description":"Is this media shared with other accounts"},"start_date":{"type":["string","null"],"description":"The start date for this media","format":"date-time"},"end_date":{"type":["string","null"],"description":"The end date for this media","format":"date-time"}},"additionalProperties":false,"description":"Media request model. Used for creating and updating media"}},"required":["id"]},
method: "put",
pathTemplate: "/media/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["deletemedia", {
name: "deletemedia",
description: `Delete media asset.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},
method: "delete",
pathTemplate: "/media/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["patchmedia", {
name: "patchmedia",
description: `Patch a media item. Patch allows partial updates by targeting specific properties of the schedule.
Uses the JSON Patch syntax (http://jsonpatch.com)`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Media Id"},"requestBody":{"type":"string","description":"Patch update"}},"required":["id"]},
method: "patch",
pathTemplate: "/media/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json-patch+json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getmediagroups", {
name: "getmediagroups",
description: `Gets media groups.`,
inputSchema: {"type":"object","properties":{"tree":{"type":"boolean","default":false,"description":"Optional hierarchical data format"},"id":{"type":"string","description":"Optional group id"},"take":{"type":"number","format":"int32","description":"Optional number of items to return"},"page":{"type":"number","format":"int32","description":"Optional number of page to return"}}},
method: "get",
pathTemplate: "/media/groups",
executionParameters: [{"name":"tree","in":"query"},{"name":"id","in":"query"},{"name":"take","in":"query"},{"name":"page","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postmediagroup", {
name: "postmediagroup",
description: `Create a new media group.`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The group name"}},"additionalProperties":false,"description":"Media group"}}},
method: "post",
pathTemplate: "/media/groups",
executionParameters: [],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putmediagroup", {
name: "putmediagroup",
description: `Updates a media group.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Group id"},"requestBody":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The group name"}},"additionalProperties":false,"description":"Media group"}},"required":["id"]},
method: "put",
pathTemplate: "/media/groups/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["deletemediagroup", {
name: "deletemediagroup",
description: `Group must be empty.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Media group Id"}},"required":["id"]},
method: "delete",
pathTemplate: "/media/groups/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postmediabyfilename", {
name: "postmediabyfilename",
description: `POST body should contain raw binary media file`,
inputSchema: {"type":"object","properties":{"group_id":{"type":"string"},"file_name":{"type":"string"},"shared":{"type":"boolean","default":false,"description":"Optional media sharing"},"start_date":{"type":"string","format":"date-time","description":"Optional start date"},"end_date":{"type":"string","format":"date-time","description":"Optional end date"},"advertiser_id":{"type":"number","format":"int32","description":"Optional advertiser user Id"},"name":{"type":"string","description":"Optional media name. Overrides the uploaded name"},"description":{"type":"string","description":"Optional media tags"}},"required":["group_id","file_name"]},
method: "post",
pathTemplate: "/media/{group_id}/{file_name}",
executionParameters: [{"name":"group_id","in":"path"},{"name":"file_name","in":"path"},{"name":"shared","in":"query"},{"name":"start_date","in":"query"},{"name":"end_date","in":"query"},{"name":"advertiser_id","in":"query"},{"name":"name","in":"query"},{"name":"description","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postmediaimport", {
name: "postmediaimport",
description: `Import a file from a URL.`,
inputSchema: {"type":"object","properties":{"url":{"type":"string","description":"URL of the file to import"},"group_id":{"type":"string","description":"Media group Id"}}},
method: "post",
pathTemplate: "/media/import",
executionParameters: [{"name":"url","in":"query"},{"name":"group_id","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getplaylists", {
name: "getplaylists",
description: `Gets all playlists in an account.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Optional playlist Id to filter by"},"take":{"type":"number","format":"int32","description":"Optional number of items to return"},"page":{"type":"number","format":"int32","description":"Optional number of page to return"},"group_id":{"type":"array","items":{"type":"string"}},"group_name":{"type":"array","items":{"type":"string"}}}},
method: "get",
pathTemplate: "/playlists",
executionParameters: [{"name":"id","in":"query"},{"name":"take","in":"query"},{"name":"page","in":"query"},{"name":"group_id","in":"query"},{"name":"group_name","in":"query"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["postplaylist", {
name: "postplaylist",
description: `Create a new playlist.`,
inputSchema: {"type":"object","properties":{"requestBody":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The playlist id"},"name":{"type":["string","null"],"description":"The playlist name"},"group_name":{"type":["string","null"],"description":"The group name"},"group_id":{"type":["string","null"],"description":"The group id"},"tags":{"type":["string","null"],"description":"The tags associated with this playlist"},"type":{"enum":["Multimedia","Slideshow","Template","Marquee"],"type":"string"},"duration":{"type":["number","null"],"description":"Total duration for this playlist. Used in conjunction with loop policy","format":"int32"},"is_random_start":{"type":["boolean","null"],"description":"Randomize the order of the playlist"},"created_on":{"type":["string","null"],"description":"The date the playlist was created","format":"date-time"},"created_by_id":{"type":["string","null"],"description":"The user id that created the playlist"},"modified_on":{"type":["string","null"],"description":"The date the playlist was last modified","format":"date-time"},"modified_by_id":{"type":["string","null"],"description":"The user id that last modified the playlist"},"sources":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string","description":"The source id","nullable":true},"name":{"type":"string","description":"The source name","nullable":true},"type":{"enum":["Audio","Command","Flash","Gadget","Image","Pdf","PlaceExchange","Playlist","PowerPoint","Rss","Svg","Template","Text","Twitter","Url","Video","VistarMedia","WebPage","YouTube","VistarMediaEx"],"type":"string"},"sequence":{"type":"integer","description":"The sequence. Lower numbers are displayed first.","format":"int32","nullable":true},"media_id":{"type":"string","description":"The media file id","nullable":true},"template_id":{"type":"string","description":"The template id","nullable":true},"playlist_id":{"type":"string","description":"The playlist id","nullable":true},"value":{"type":"string","description":"The value","nullable":true},"interval":{"type":"integer","description":"The duration in seconds","format":"int32","nullable":true},"media":{"type":"object","properties":{"name":{"type":"string","description":"The media name","nullable":true},"group_id":{"type":"string","description":"The group id","nullable":true},"tags":{"type":"string","description":"The tags associated with this media","nullable":true},"advertiser_id":{"type":"string","description":"The advertiser id. Optional","nullable":true},"is_shared":{"type":"boolean","description":"Is this media shared with other accounts","nullable":true},"start_date":{"type":"string","description":"The start date for this media","format":"date-time","nullable":true},"end_date":{"type":"string","description":"The end date for this media","format":"date-time","nullable":true},"id":{"type":"string","description":"The media id","nullable":true},"group_name":{"type":"string","description":"The group name","nullable":true},"mime_type":{"type":"string","description":"The MIME type for this media","nullable":true},"file_size":{"type":"integer","description":"The file size in bytes","format":"int32"},"file_name":{"type":"string","description":"The file name","nullable":true},"file_url":{"type":"string","description":"The file URL","nullable":true},"thumbnail_url":{"type":"string","description":"The thumbnail URL","nullable":true},"uploaded_on":{"type":"string","description":"The date the media was uploaded","format":"date-time","nullable":true},"uploaded_by_id":{"type":"string","description":"The user id that uploaded the media","nullable":true},"sha_512":{"type":"string","description":"The SHA512 hash of the media file","nullable":true},"width":{"type":"integer","description":"The width of the media","format":"int32","nullable":true},"height":{"type":"integer","description":"The height of the media","format":"int32","nullable":true}},"additionalProperties":false,"description":"Media model"},"loop_policy_type":{"enum":["Default","OverSaturate2x","OverSaturate3x","OverSaturate4x","OverSaturate5x","Random","UnderSaturate2x","UnderSaturate3x","UnderSaturate4x","UnderSaturate5x","Prefill","Postfill","Spreadfill"],"type":"string","description":"Loop policy type determines how a source is to generatively positioned within a loop.\r\nIMPORTANT: Playlist duration must be set for this to take effect. If no playlist duration is specified, then source loop policy should not be assigned."},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"enum":["AfterDate","AfterTime","Always","BeforeDate","BeforeTime","Command","DateRange","DayOfMonth","DaysOfWeek","DeviceByGroup","DeviceByNestedGroup","DeviceByName","DeviceByTag","DeviceByOrg","Everywhere","GeoLocation","GpsWithinRadius","KeyEvent","MonthOfYear","Motion","Never","Nowhere","PctAdult","PctChild","PctFemale","PctMale","PctSenior","PctYoung","PctYoungAdult","PlaylistByName","PlaylistByTag","SendCommand","SpecificDevice","SpecificPlaylist","SpecificTemplate","SpecificZone","TemplateByName","TemplateByTag","TimeRange","TopicSet","TotalViewersGreaterThan","TotalViewersLessThan","TouchEvent","WeekOfMonth","WeekOfYear"],"type":"string","description":"The following enum represents the different types of conditions that can be used in scheduling logic.\r\n\r\nImportant usage notes specific to ConditionType:\r\n\r\n- ConditionType: \"TimeRange\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Start time. Starts at this time. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: \"01/01/1970 12:00:00 AM\" # End time. Stops at this time. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TopicSet\"\r\n Value1: \"sports,news,weather\" # Comma separted list of topics\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TotalViewersGreaterThan\"\r\n Value1: \"50\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TotalViewersLessThan\"\r\n Value1: \"100\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TouchEvent\"\r\n Value1: \"tap\"\r\n Value2: \"screen1\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"WeekOfMonth\"\r\n Value1: \"2\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"WeekOfYear\"\r\n Value1: \"25\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"GpsWithinRadius\"\r\n Value1: \"40.7128\"\r\n Value2: \"-74.0060\"\r\n Value3: \"50\"\r\n Value4: \"miles\"\r\n- ConditionType: \"KeyEvent\"\r\n Value1: \"ENTER\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"MonthOfYear\"\r\n Value1: \"12\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Motion\"\r\n Value1: \"detected\"\r\n Value2: \"5\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Never\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctAdult\"\r\n Value1: \"60\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctChild\"\r\n Value1: \"25\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctFemale\"\r\n Value1: \"40\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctMale\"\r\n Value1: \"60\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctSenior\"\r\n Value1: \"15\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctYoung\"\r\n Value1: \"30\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctYoungAdult\"\r\n Value1: \"35\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"AfterDate\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"AfterTime\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Always\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"BeforeDate\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"BeforeTime\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Command\"\r\n Value1: \"Command Name\"\r\n Value2: \"Command Arg\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DateRange\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Start date. Starts ON this date. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: \"01/01/1970 12:00:00 AM\" # End date. Stops AFTER this date. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DayOfMonth\"\r\n Value1: \"15\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DaysOfWeek\"\r\n Value1: \"10\" # Integer Bitfield starting with Sunday as the least significant bit\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DeviceByGroup\" # Selects all devices in a group by the groups unique identifier\r\n Value1: 0 # Unique device group ID\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DeviceByName\" # Selects a device by its name. Supports regular expressions for advanced matching\r\n Value1: \"Device Name\" # Supports regular expressions\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DeviceByNestedGroup\" # Selects all devices in a group by the groups unique identifier. Includes all devices in this group and all nested groups\r\n Value1: 0 # Unique device group ID\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DeviceByOrg\" # Selects all devices in an organization\r\n Value1: 0 # Unique organization ID\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DeviceByTag\" # Selects devices by their associated tags\r\n Value1: \"critical_infrastructure\" # Newline separted list of tags\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Everywhere\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"GeoLocation\"\r\n Value1: \"37.7749\" # Latitude of the location\r\n Value2: \"-122.4194\" # Longitude of the location\r\n Value3: \"50\" # Distance in miles from geolocation\"\r\n Value4: \"123 5th St. N\" # Street address of the location\r\n- ConditionType: \"Nowhere\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"SpecificDevice\"\r\n Value1: 0 # Unique device ID\r\n Value2: null\r\n Value3: null\r\n Value4: null"},"operator":{"enum":["And","Or","AndNot","OrNot"],"type":"string"},"value_1":{"type":"string","description":"Value 1. See ConditionType documentation for usage notes.","nullable":true},"value_2":{"type":"string","description":"Value 2. See ConditionType documentation for usage notes.","nullable":true},"value_3":{"type":"string","description":"Value 3. See ConditionType documentation for usage notes.","nullable":true},"value_4":{"type":"string","description":"Value 4. See ConditionType documentation for usage notes.","nullable":true}},"additionalProperties":false},"description":"The conditions for this source","nullable":true}},"additionalProperties":false,"description":"Source model"},"description":"The sources associated with this playlist"}},"additionalProperties":false,"description":"Playlist to create"}}},
method: "post",
pathTemplate: "/playlists",
executionParameters: [],
requestBodyContentType: "application/json",
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["getplaylistbyid", {
name: "getplaylistbyid",
description: `Gets a playlist by ID.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Playlist Id"}},"required":["id"]},
method: "get",
pathTemplate: "/playlists/{id}",
executionParameters: [{"name":"id","in":"path"}],
requestBodyContentType: undefined,
securityRequirements: [{"Bearer":["webapi"]},{"ApiKeyInHeader":[]},{"ApiKeyInQuery":[]}]
}],
["putplaylist", {
name: "putplaylist",
description: `Put a playlist. Replaces a playlist with the one provided.`,
inputSchema: {"type":"object","properties":{"id":{"type":"string","description":"Playlist Id"},"requestBody":{"type":"object","properties":{"id":{"type":["string","null"],"description":"The playlist id"},"name":{"type":["string","null"],"description":"The playlist name"},"group_name":{"type":["string","null"],"description":"The group name"},"group_id":{"type":["string","null"],"description":"The group id"},"tags":{"type":["string","null"],"description":"The tags associated with this playlist"},"type":{"enum":["Multimedia","Slideshow","Template","Marquee"],"type":"string"},"duration":{"type":["number","null"],"description":"Total duration for this playlist. Used in conjunction with loop policy","format":"int32"},"is_random_start":{"type":["boolean","null"],"description":"Randomize the order of the playlist"},"created_on":{"type":["string","null"],"description":"The date the playlist was created","format":"date-time"},"created_by_id":{"type":["string","null"],"description":"The user id that created the playlist"},"modified_on":{"type":["string","null"],"description":"The date the playlist was last modified","format":"date-time"},"modified_by_id":{"type":["string","null"],"description":"The user id that last modified the playlist"},"sources":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string","description":"The source id","nullable":true},"name":{"type":"string","description":"The source name","nullable":true},"type":{"enum":["Audio","Command","Flash","Gadget","Image","Pdf","PlaceExchange","Playlist","PowerPoint","Rss","Svg","Template","Text","Twitter","Url","Video","VistarMedia","WebPage","YouTube","VistarMediaEx"],"type":"string"},"sequence":{"type":"integer","description":"The sequence. Lower numbers are displayed first.","format":"int32","nullable":true},"media_id":{"type":"string","description":"The media file id","nullable":true},"template_id":{"type":"string","description":"The template id","nullable":true},"playlist_id":{"type":"string","description":"The playlist id","nullable":true},"value":{"type":"string","description":"The value","nullable":true},"interval":{"type":"integer","description":"The duration in seconds","format":"int32","nullable":true},"media":{"type":"object","properties":{"name":{"type":"string","description":"The media name","nullable":true},"group_id":{"type":"string","description":"The group id","nullable":true},"tags":{"type":"string","description":"The tags associated with this media","nullable":true},"advertiser_id":{"type":"string","description":"The advertiser id. Optional","nullable":true},"is_shared":{"type":"boolean","description":"Is this media shared with other accounts","nullable":true},"start_date":{"type":"string","description":"The start date for this media","format":"date-time","nullable":true},"end_date":{"type":"string","description":"The end date for this media","format":"date-time","nullable":true},"id":{"type":"string","description":"The media id","nullable":true},"group_name":{"type":"string","description":"The group name","nullable":true},"mime_type":{"type":"string","description":"The MIME type for this media","nullable":true},"file_size":{"type":"integer","description":"The file size in bytes","format":"int32"},"file_name":{"type":"string","description":"The file name","nullable":true},"file_url":{"type":"string","description":"The file URL","nullable":true},"thumbnail_url":{"type":"string","description":"The thumbnail URL","nullable":true},"uploaded_on":{"type":"string","description":"The date the media was uploaded","format":"date-time","nullable":true},"uploaded_by_id":{"type":"string","description":"The user id that uploaded the media","nullable":true},"sha_512":{"type":"string","description":"The SHA512 hash of the media file","nullable":true},"width":{"type":"integer","description":"The width of the media","format":"int32","nullable":true},"height":{"type":"integer","description":"The height of the media","format":"int32","nullable":true}},"additionalProperties":false,"description":"Media model"},"loop_policy_type":{"enum":["Default","OverSaturate2x","OverSaturate3x","OverSaturate4x","OverSaturate5x","Random","UnderSaturate2x","UnderSaturate3x","UnderSaturate4x","UnderSaturate5x","Prefill","Postfill","Spreadfill"],"type":"string","description":"Loop policy type determines how a source is to generatively positioned within a loop.\r\nIMPORTANT: Playlist duration must be set for this to take effect. If no playlist duration is specified, then source loop policy should not be assigned."},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"enum":["AfterDate","AfterTime","Always","BeforeDate","BeforeTime","Command","DateRange","DayOfMonth","DaysOfWeek","DeviceByGroup","DeviceByNestedGroup","DeviceByName","DeviceByTag","DeviceByOrg","Everywhere","GeoLocation","GpsWithinRadius","KeyEvent","MonthOfYear","Motion","Never","Nowhere","PctAdult","PctChild","PctFemale","PctMale","PctSenior","PctYoung","PctYoungAdult","PlaylistByName","PlaylistByTag","SendCommand","SpecificDevice","SpecificPlaylist","SpecificTemplate","SpecificZone","TemplateByName","TemplateByTag","TimeRange","TopicSet","TotalViewersGreaterThan","TotalViewersLessThan","TouchEvent","WeekOfMonth","WeekOfYear"],"type":"string","description":"The following enum represents the different types of conditions that can be used in scheduling logic.\r\n\r\nImportant usage notes specific to ConditionType:\r\n\r\n- ConditionType: \"TimeRange\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Start time. Starts at this time. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: \"01/01/1970 12:00:00 AM\" # End time. Stops at this time. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TopicSet\"\r\n Value1: \"sports,news,weather\" # Comma separted list of topics\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TotalViewersGreaterThan\"\r\n Value1: \"50\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TotalViewersLessThan\"\r\n Value1: \"100\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"TouchEvent\"\r\n Value1: \"tap\"\r\n Value2: \"screen1\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"WeekOfMonth\"\r\n Value1: \"2\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"WeekOfYear\"\r\n Value1: \"25\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"GpsWithinRadius\"\r\n Value1: \"40.7128\"\r\n Value2: \"-74.0060\"\r\n Value3: \"50\"\r\n Value4: \"miles\"\r\n- ConditionType: \"KeyEvent\"\r\n Value1: \"ENTER\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"MonthOfYear\"\r\n Value1: \"12\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Motion\"\r\n Value1: \"detected\"\r\n Value2: \"5\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Never\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctAdult\"\r\n Value1: \"60\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctChild\"\r\n Value1: \"25\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctFemale\"\r\n Value1: \"40\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctMale\"\r\n Value1: \"60\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctSenior\"\r\n Value1: \"15\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctYoung\"\r\n Value1: \"30\"\r\n Value2: \"<=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"PctYoungAdult\"\r\n Value1: \"35\"\r\n Value2: \">=\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"AfterDate\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"AfterTime\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Always\"\r\n Value1: null\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"BeforeDate\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"BeforeTime\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: null\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"Command\"\r\n Value1: \"Command Name\"\r\n Value2: \"Command Arg\"\r\n Value3: null\r\n Value4: null\r\n- ConditionType: \"DateRange\"\r\n Value1: \"01/01/1970 12:00:00 AM\" # Start date. Starts ON this date. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value2: \"01/01/1970 12:00:00 AM\" # End date. Stops AFTER this date. Date/time format: \"MM/dd/yyyy hh:mm:ss aa\"\r\n Value3: null\r\n