# Schemas
* [API Token](#api-token)
* [API Token Patch](#api-token-patch)
* [Application](#application)
* [Application API Token Post](#application-api-token-post)
* [Application Key](#application-key)
* [Application Key Patch](#application-key-patch)
* [Application Key Post](#application-key-post)
* [Application Key Post Response](#application-key-post-response)
* [Application Keys](#application-keys)
* [Application Patch](#application-patch)
* [Application Post](#application-post)
* [Applications](#applications)
* [Audit Log](#audit-log)
* [Audit Log Filter](#audit-log-filter)
* [Audit Logs](#audit-logs)
* [Authenticated Device](#authenticated-device)
* [Authenticated Solution User](#authenticated-solution-user)
* [Authenticated User](#authenticated-user)
* [Composite Device State](#composite-device-state)
* [Dashboard](#dashboard)
* [Dashboard Context Instance](#dashboard-context-instance)
* [Dashboard Patch](#dashboard-patch)
* [Dashboard Post](#dashboard-post)
* [Dashboards](#dashboards)
* [Data Table](#data-table)
* [Data Table Column](#data-table-column)
* [Data Table Patch](#data-table-patch)
* [Data Table Post](#data-table-post)
* [Data Table Query](#data-table-query)
* [Data Table Row](#data-table-row)
* [Data Table Row Insert/Update](#data-table-row-insert/update)
* [Data Table Rows](#data-table-rows)
* [Data Tables](#data-tables)
* [Device](#device)
* [Device Command](#device-command)
* [Device Commands](#device-commands)
* [Device Credentials](#device-credentials)
* [Device Log](#device-log)
* [Device Patch](#device-patch)
* [Device Post](#device-post)
* [Device Recipe](#device-recipe)
* [Device Recipe Bulk Create](#device-recipe-bulk-create)
* [Device Recipe Bulk Create Post](#device-recipe-bulk-create-post)
* [Device Recipe Patch](#device-recipe-patch)
* [Device Recipe Post](#device-recipe-post)
* [Device Recipes](#device-recipes)
* [Single or Multiple Device States](#single-or-multiple-device-states)
* [Device States](#device-states)
* [Device Tag Filter](#device-tag-filter)
* [Devices](#devices)
* [Disable Two Factor Auth](#disable-two-factor-auth)
* [Enable Two Factor Auth](#enable-two-factor-auth)
* [Error](#error)
* [Event](#event)
* [Event Patch](#event-patch)
* [Event Post](#event-post)
* [Events](#events)
* [Experience Endpoint](#experience-endpoint)
* [Experience Endpoint Patch](#experience-endpoint-patch)
* [Experience Endpoint Post](#experience-endpoint-post)
* [Experience Endpoint Stats](#experience-endpoint-stats)
* [Experience Endpoints](#experience-endpoints)
* [Experience Group](#experience-group)
* [Experience Group Patch](#experience-group-patch)
* [Experience Group Post](#experience-group-post)
* [Experience Groups](#experience-groups)
* [Experience Template](#experience-template)
* [Experience Template Patch](#experience-template-patch)
* [Experience Template Post](#experience-template-post)
* [Experience Templates](#experience-templates)
* [Experience User](#experience-user)
* [Experience User Patch](#experience-user-patch)
* [Experience User Post](#experience-user-post)
* [Experience Users](#experience-users)
* [Workflow](#workflow)
* [Workflow Log](#workflow-log)
* [Workflow Patch](#workflow-patch)
* [Workflow Post](#workflow-post)
* [Workflow Storage Entries](#workflow-storage-entries)
* [Workflow Storage Entry](#workflow-storage-entry)
* [Workflow Trigger Filter](#workflow-trigger-filter)
* [Workflow Version](#workflow-version)
* [Workflow Version Patch](#workflow-version-patch)
* [Workflow Version Post](#workflow-version-post)
* [Workflow Versions](#workflow-versions)
* [Workflows](#workflows)
* [Github Login](#github-login)
* [Integration](#integration)
* [Integration Patch](#integration-patch)
* [Integration Post](#integration-post)
* [Integrations](#integrations)
* [Last Value Data](#last-value-data)
* [Last Value Query](#last-value-query)
* [Me](#me)
* [Me Patch](#me-patch)
* [Multi Device Command](#multi-device-command)
* [Organization](#organization)
* [Organization Invitation Action](#organization-invitation-action)
* [Organization Invitation Information](#organization-invitation-information)
* [Organization Invitation Post](#organization-invitation-post)
* [Organization Invitation Result](#organization-invitation-result)
* [Organization Invitations](#organization-invitations)
* [Organization Member Patch](#organization-member-patch)
* [Organization Patch](#organization-patch)
* [Organization Post](#organization-post)
* [Organizations](#organizations)
* [Payload Counts](#payload-counts)
* [Recent Item](#recent-item)
* [Recent Item List](#recent-item-list)
* [Resource Transfer](#resource-transfer)
* [Solution](#solution)
* [Solution Patch](#solution-patch)
* [Solution Post](#solution-post)
* [Solution User](#solution-user)
* [Solution User Credentials](#solution-user-credentials)
* [Solution User Patch](#solution-user-patch)
* [Solution User Post](#solution-user-post)
* [Solution Users](#solution-users)
* [Solutions](#solutions)
* [Success](#success)
* [Time Series Data](#time-series-data)
* [Time Series Query](#time-series-query)
* [User Credentials](#user-credentials)
* [Virtual Button Press](#virtual-button-press)
* [Webhook](#webhook)
* [Webhook Patch](#webhook-patch)
* [Webhook Post](#webhook-post)
* [Webhooks](#webhooks)
## API Token
Schema for a single API Token
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"apiTokenId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerType": {
"type": "string",
"enum": [
"application"
]
},
"creatorId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creatorType": {
"type": "string",
"enum": [
"apiToken",
"user",
"flow"
]
},
"creatorName": {
"type": "string",
"maxLength": 1024
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"expirationDate": {
"type": "string",
"format": "date-time"
},
"scope": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 1024
}
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"token": {
"type": "string",
"minLength": 1
}
}
}
```
### Example
```json
{
"id": "575ec7417ae143cd83dc4a95",
"apiTokenId": "575ec7417ae143cd83dc4a95",
"creatorId": "575ed70c7ae143cd83dc4aa9",
"creatorType": "user",
"ownerId": "575ec8687ae143cd83dc4a97",
"ownerType": "application",
"name": "My API Token",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"expirationDate": "2017-06-13T04:00:00.000Z",
"scope": [
"all.Application"
],
"status": "active",
"token": "the_actual_token_string"
}
```
## API Token Patch
Schema for the body of an API Token modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated API Token",
"status": "inactive"
}
```
## Application
Schema for a single Application
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"ownerId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerType": {
"type": "string",
"enum": [
"user",
"organization"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"endpointSlug": {
"type": "string",
"minLength": 4,
"maxLength": 255,
"pattern": "^[0-9a-z_-]*$"
},
"expUserTokenCutoff": {
"type": "string",
"format": "date-time"
},
"endpointDefaultCors": {
"type": "boolean"
},
"globals": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"additionalProperties": false,
"required": [
"key",
"json"
]
}
},
"summary": {
"type": "object",
"properties": {
"apiTokenCount": {
"type": "number"
},
"keyCount": {
"type": "number"
},
"deviceCount": {
"type": "number"
},
"dataTableCount": {
"type": "number"
},
"deviceRecipeCount": {
"type": "number"
},
"eventCount": {
"type": "number"
},
"experienceEndpointCount": {
"type": "number"
},
"experienceGroupCount": {
"type": "number"
},
"experienceTemplateCount": {
"type": "number"
},
"experienceUserCount": {
"type": "number"
},
"flowCount": {
"type": "number"
},
"integrationCount": {
"type": "number"
},
"webhookCount": {
"type": "number"
}
}
}
}
}
```
### Example
```json
{
"id": "575ec8687ae143cd83dc4a97",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"ownerId": "575ed70c7ae143cd83dc4aa9",
"ownerType": "user",
"name": "My Application",
"description": "The is the best application description",
"summary": {
"deviceCount": 5,
"flowCount": 2,
"webhookCount": 0,
"eventCount": 0,
"keyCount": 1,
"deviceRecipeCount": 0
}
}
```
## Application API Token Post
Schema for the body of an Application API Token creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"expirationDate": {
"type": "string",
"format": "date-time"
},
"scope": {
"type": "array",
"items": {
"type": "string",
"enum": [
"all.Application",
"all.Application.read",
"all.Device",
"all.Device.read",
"application.*",
"applicationApiToken.*",
"applicationApiTokens.*",
"applicationKey.*",
"applicationKeys.*",
"data.*",
"dataTable.*",
"dataTables.*",
"device.*",
"deviceRecipe.*",
"deviceRecipes.*",
"devices.*",
"event.*",
"events.*",
"experienceEndpoint.*",
"experienceEndpoints.*",
"experienceGroup.*",
"experienceGroups.*",
"experienceTemplate.*",
"experienceTemplates.*",
"experienceUser.*",
"experienceUsers.*",
"integration.*",
"integrations.*",
"flow.*",
"flows.*",
"flowVersion.*",
"flowVersions.*",
"webhook.*",
"webhooks.*",
"application.delete",
"application.get",
"application.patch",
"application.payloadCounts",
"applicationApiToken.delete",
"applicationApiToken.get",
"applicationApiToken.patch",
"applicationApiTokens.get",
"applicationApiTokens.post",
"applicationKey.delete",
"applicationKey.get",
"applicationKey.patch",
"applicationKeys.get",
"applicationKeys.post",
"data.lastValueQuery",
"data.timeSeriesQuery",
"dataTable.addColumn",
"dataTable.delete",
"dataTable.get",
"dataTable.patch",
"dataTable.removeColumn",
"dataTableRow.delete",
"dataTableRow.get",
"dataTableRow.patch",
"dataTableRows.get",
"dataTableRows.post",
"dataTableRows.query",
"dataTables.get",
"dataTables.post",
"device.delete",
"device.export",
"device.get",
"device.getCommand",
"device.getCompositeState",
"device.getLogEntries",
"device.getState",
"device.patch",
"device.removeData",
"device.sendCommand",
"device.sendState",
"deviceRecipe.bulkCreate",
"deviceRecipe.delete",
"deviceRecipe.get",
"deviceRecipe.patch",
"deviceRecipes.get",
"deviceRecipes.post",
"devices.export",
"devices.get",
"devices.post",
"devices.sendCommand",
"event.delete",
"event.get",
"event.patch",
"events.get",
"events.mostRecentBySeverity",
"events.patch",
"events.post",
"experienceEndpoint.delete",
"experienceEndpoint.get",
"experienceEndpoint.patch",
"experienceEndpoints.get",
"experienceEndpoints.post",
"experienceEndpoints.stats",
"experienceGroup.delete",
"experienceGroup.get",
"experienceGroup.patch",
"experienceGroups.get",
"experienceGroups.post",
"experienceTemplate.delete",
"experienceTemplate.get",
"experienceTemplate.patch",
"experienceTemplates.get",
"experienceTemplates.post",
"experienceUser.delete",
"experienceUser.get",
"experienceUser.patch",
"experienceUsers.get",
"experienceUsers.post",
"flow.delete",
"flow.clearStorageEntries",
"flow.get",
"flow.getStorageEntries",
"flow.log",
"flow.patch",
"flow.pressVirtualButton",
"flow.setStorageEntry",
"flows.get",
"flows.post",
"flowVersion.delete",
"flowVersion.get",
"flowVersion.log",
"flowVersion.patch",
"flowVersions.get",
"flowVersions.post",
"integration.delete",
"integration.get",
"integration.patch",
"integrations.get",
"integrations.post",
"webhook.delete",
"webhook.get",
"webhook.patch",
"webhooks.get",
"webhooks.post"
]
}
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My New API Token",
"expirationDate": "2017-06-13T04:00:00.000Z",
"scope": [
"all.Application"
],
"status": "active"
}
```
## Application Key
Schema for a single Application Key
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationKeyId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"key": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
},
"description": {
"type": "string",
"maxLength": 32767
}
}
}
```
### Example
```json
{
"id": "575ec76c7ae143cd83dc4a96",
"applicationKeyId": "575ec76c7ae143cd83dc4a96",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"key": "this_would_be_the_key",
"status": "active",
"description": "An example key description"
}
```
## Application Key Patch
Schema for the body of an Application Key modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"description": {
"type": "string",
"maxLength": 32767
}
},
"additionalProperties": false
}
```
### Example
```json
{
"status": "active",
"description": "An example updated key description"
}
```
## Application Key Post
Schema for the body of an Application Key creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
},
"description": {
"type": "string",
"maxLength": 32767
}
},
"additionalProperties": false
}
```
### Example
```json
{
"description": "An example new key description"
}
```
## Application Key Post Response
Schema for a response of Application Key creation
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationKeyId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"key": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"secret": {
"type": "string"
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
},
"description": {
"type": "string",
"maxLength": 32767
}
}
}
```
### Example
```json
{
"id": "575ec76c7ae143cd83dc4a96",
"applicationKeyId": "575ec76c7ae143cd83dc4a96",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"key": "this_would_be_the_key",
"status": "active",
"secret": "shhhSecret",
"description": "An example key description"
}
```
## Application Keys
Schema for a collection of Application Keys
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Application Key",
"description": "Schema for a single Application Key",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationKeyId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"key": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
},
"description": {
"type": "string",
"maxLength": 32767
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ec76c7ae143cd83dc4a96",
"applicationKeyId": "575ec76c7ae143cd83dc4a96",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"key": "this_would_be_the_key",
"status": "active",
"description": "An example key description"
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "key",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Application Patch
Schema for the body of an Application modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"endpointSlug": {
"type": "string",
"minLength": 4,
"maxLength": 255,
"pattern": "^[0-9a-z_-]*$"
},
"expUserTokenCutoff": {
"type": "string",
"format": "date-time"
},
"endpointDefaultCors": {
"type": "boolean"
},
"globals": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"additionalProperties": false,
"required": [
"key",
"json"
]
}
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated Application",
"description": "Description of my updated application"
}
```
## Application Post
Schema for the body of an Application creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"orgId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"endpointSlug": {
"type": "string",
"minLength": 4,
"maxLength": 255,
"pattern": "^[0-9a-z_-]*$"
},
"expUserTokenCutoff": {
"type": "string",
"format": "date-time"
},
"endpointDefaultCors": {
"type": "boolean"
},
"globals": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"additionalProperties": false,
"required": [
"key",
"json"
]
}
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My New Application",
"description": "Description of my new application"
}
```
## Applications
Schema for a collection of Applications
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Application",
"description": "Schema for a single Application",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"ownerId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerType": {
"type": "string",
"enum": [
"user",
"organization"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"endpointSlug": {
"type": "string",
"minLength": 4,
"maxLength": 255,
"pattern": "^[0-9a-z_-]*$"
},
"expUserTokenCutoff": {
"type": "string",
"format": "date-time"
},
"endpointDefaultCors": {
"type": "boolean"
},
"globals": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"additionalProperties": false,
"required": [
"key",
"json"
]
}
},
"summary": {
"type": "object",
"properties": {
"apiTokenCount": {
"type": "number"
},
"keyCount": {
"type": "number"
},
"deviceCount": {
"type": "number"
},
"dataTableCount": {
"type": "number"
},
"deviceRecipeCount": {
"type": "number"
},
"eventCount": {
"type": "number"
},
"experienceEndpointCount": {
"type": "number"
},
"experienceGroupCount": {
"type": "number"
},
"experienceTemplateCount": {
"type": "number"
},
"experienceUserCount": {
"type": "number"
},
"flowCount": {
"type": "number"
},
"integrationCount": {
"type": "number"
},
"webhookCount": {
"type": "number"
}
}
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ec8687ae143cd83dc4a97",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"ownerId": "575ed70c7ae143cd83dc4aa9",
"ownerType": "user",
"name": "My Application",
"description": "The is the best application description",
"summary": {
"deviceCount": 5,
"flowCount": 2,
"webhookCount": 0,
"eventCount": 0,
"keyCount": 1,
"deviceRecipeCount": 0
}
}
],
"count": 1,
"totalCount": 8,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc"
}
```
## Audit Log
Schema for a single Audit Log entry
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"auditLogId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"orgId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"primaryTargetId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"primaryTargetType": {
"type": "string",
"enum": [
"Application",
"Dashboard",
"Solution",
"OrgInvite"
]
},
"primaryTargetName": {
"type": "string",
"maxLength": 1024
},
"secondaryTargetId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"secondaryTargetType": {
"type": "string",
"enum": [
"ApiToken",
"ApplicationKey",
"DataTable",
"Device",
"DeviceRecipe",
"Event",
"ExperienceEndpoint",
"ExperienceGroup",
"ExperienceTemplate",
"ExperienceUser",
"Flow",
"SolutionUser",
"Integration",
"Webhook"
]
},
"secondaryTargetName": {
"type": "string",
"maxLength": 1024
},
"actorId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"actorType": {
"type": "string",
"enum": [
"Application",
"Device",
"Flow",
"SolutionUser",
"User",
"ApiToken"
]
},
"actorName": {
"type": "string",
"maxLength": 1024
},
"requestResource": {
"type": "string",
"maxLength": 1024
},
"requestAction": {
"type": "string",
"maxLength": 1024
},
"requestQueryParams": {
"type": "object"
},
"requestBody": {
"type": "object"
},
"requestPathParams": {
"type": "object"
},
"responseBody": {
"type": "object"
},
"responseStatus": {
"type": "integer",
"minimum": 100,
"maximum": 599
}
}
}
```
### Example
```json
{
"id": "586e9d5151265cb9d72f6ec6",
"auditLogId": "586e9d5151265cb9d72f6ec6",
"creationDate": "2016-06-13T04:00:00.000Z",
"orgId": "575ed6e87ae143cd83dc4aa8",
"primaryTargetId": "575ec8687ae143cd83dc4a97",
"primaryTargetType": "Application",
"primaryTargetName": "My Application",
"actorId": "575ed70c7ae143cd83dc4aa9",
"actorType": "User",
"actorName": "example@losant.com",
"requestResource": "application",
"requestAction": "delete",
"requestQueryParams": {},
"requestBody": {},
"requestPathParams": {
"applicationId": "575ec8687ae143cd83dc4a97"
},
"responseBody": {
"success": true
},
"responseStatus": 200
}
```
## Audit Log Filter
Schema for the filter of an audit log query
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"primaryTarget": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"type": {
"type": "string",
"enum": [
"Application",
"Dashboard",
"Solution",
"OrgInvite"
]
},
"name": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
}
},
"secondaryTarget": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"type": {
"type": "string",
"enum": [
"ApiToken",
"ApplicationKey",
"DataTable",
"Device",
"DeviceRecipe",
"Event",
"ExperienceEndpoint",
"ExperienceGroup",
"ExperienceTemplate",
"ExperienceUser",
"Flow",
"SolutionUser",
"Integration",
"Webhook"
]
},
"name": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
}
},
"actor": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"type": {
"type": "string",
"enum": [
"Application",
"Device",
"Flow",
"SolutionUser",
"User",
"ApiToken"
]
},
"name": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
}
},
"request": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resource": {
"type": "string",
"maxLength": 1024
},
"action": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
}
},
"responseCode": {
"type": "array",
"items": {
"type": "integer",
"minimum": 100,
"maximum": 599
}
}
},
"additionalProperties": false
}
```
### Example
```json
{
"primaryTarget": [
{
"type": "Dashboard"
},
{
"type": "Application",
"id": "575ec8687ae143cd83dc4a97"
}
],
"actor": [
{
"type": "User",
"id": "575ed70c7ae143cd83dc4aa9"
}
]
}
```
## Audit Logs
Schema for a collection of Audit Logs
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Audit Log",
"description": "Schema for a single Audit Log entry",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"auditLogId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"orgId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"primaryTargetId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"primaryTargetType": {
"type": "string",
"enum": [
"Application",
"Dashboard",
"Solution",
"OrgInvite"
]
},
"primaryTargetName": {
"type": "string",
"maxLength": 1024
},
"secondaryTargetId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"secondaryTargetType": {
"type": "string",
"enum": [
"ApiToken",
"ApplicationKey",
"DataTable",
"Device",
"DeviceRecipe",
"Event",
"ExperienceEndpoint",
"ExperienceGroup",
"ExperienceTemplate",
"ExperienceUser",
"Flow",
"SolutionUser",
"Integration",
"Webhook"
]
},
"secondaryTargetName": {
"type": "string",
"maxLength": 1024
},
"actorId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"actorType": {
"type": "string",
"enum": [
"Application",
"Device",
"Flow",
"SolutionUser",
"User",
"ApiToken"
]
},
"actorName": {
"type": "string",
"maxLength": 1024
},
"requestResource": {
"type": "string",
"maxLength": 1024
},
"requestAction": {
"type": "string",
"maxLength": 1024
},
"requestQueryParams": {
"type": "object"
},
"requestBody": {
"type": "object"
},
"requestPathParams": {
"type": "object"
},
"responseBody": {
"type": "object"
},
"responseStatus": {
"type": "integer",
"minimum": 100,
"maximum": 599
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"orgId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "586e9d5151265cb9d72f6ec6",
"auditLogId": "586e9d5151265cb9d72f6ec6",
"creationDate": "2016-06-13T04:00:00.000Z",
"orgId": "575ed6e87ae143cd83dc4aa8",
"primaryTargetId": "575ec8687ae143cd83dc4a97",
"primaryTargetType": "Application",
"primaryTargetName": "My Application",
"actorId": "575ed70c7ae143cd83dc4aa9",
"actorType": "User",
"actorName": "example@losant.com",
"requestResource": "application",
"requestAction": "delete",
"requestQueryParams": {},
"requestBody": {},
"requestPathParams": {
"applicationId": "575ec8687ae143cd83dc4a97"
},
"responseBody": {
"success": true
},
"responseStatus": 200
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "creationDate",
"sortDirection": "desc",
"orgId": "575ed6e87ae143cd83dc4aa8"
}
```
## Authenticated Device
Schema for the successful response when authenticating a Device
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"applicationId",
"deviceId",
"deviceClass",
"token"
]
}
```
### Example
```json
{
"applicationId": "575ec8687ae143cd83dc4a97",
"deviceId": "575ecf887ae143cd83dc4aa2",
"deviceClass": "standalone",
"token": "token_to_use_for_authenticating_subsequent_requests"
}
```
## Authenticated Solution User
Schema for the successful response when authenticating a Solution User
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"solutionUserId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"solutionUserId",
"token"
]
}
```
### Example
```json
{
"solutionUserId": "566116085df4b701000258e3",
"token": "token_to_use_for_authenticating_subsequent_requests"
}
```
## Authenticated User
Schema for the successful response when authenticating a User
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"userId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"userId",
"token"
]
}
```
### Example
```json
{
"userId": "575ed70c7ae143cd83dc4aa9",
"token": "token_to_use_for_authenticating_subsequent_requests"
}
```
## Composite Device State
Schema for a composite Device state
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": "object",
"properties": {
"value": {
"type": [
"number",
"string",
"boolean"
]
},
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"relayId": {
"type": "string"
}
}
}
},
"additionalProperties": false
}
```
### Example
```json
{
"voltage": {
"time": "2016-06-13T04:00:00.000Z",
"value": 22.4
},
"loaded": {
"time": "2016-06-13T03:00:00.000Z",
"value": false
}
}
```
## Dashboard
Schema for a single Dashboard
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"dashboardId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"ownerId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerType": {
"type": "string",
"enum": [
"user",
"organization"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"refreshRate": {
"type": "number",
"minimum": 5,
"maximum": 600
},
"isPasswordProtected": {
"type": "boolean"
},
"public": {
"type": "boolean"
},
"reportConfigs": {
"type": "array",
"max": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"cron",
"toEmail"
],
"properties": {
"id": {
"type": "string",
"max": 14
},
"cron": {
"type": "string"
},
"toEmail": {
"type": "array",
"min": 1,
"max": 10,
"items": {
"type": "string",
"format": "email",
"maxLength": 1024
}
},
"subject": {
"type": "string",
"max": 255
},
"message": {
"type": "string",
"max": 32767
},
"theme": {
"type": "string",
"enum": [
"dark",
"light"
]
},
"timezone": {
"type": "string",
"max": 255
}
}
}
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"blockType": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 255
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"startX": {
"type": "number"
},
"startY": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"config": {
"type": "object"
}
},
"required": [
"blockType",
"startX",
"startY",
"width",
"height"
],
"additionalProperties": false
}
},
"contextConfiguration": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"type": {
"type": "string",
"enum": [
"deviceId",
"deviceAttribute",
"string",
"number"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"defaultValue": {
"type": [
"string",
"number"
]
},
"validationEnabled": {
"type": "boolean"
},
"validationConfig": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"regExp": {
"type": "string",
"maxLength": 1024
},
"attributes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
}
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
}
},
"additionalProperties": false
}
},
"required": [
"name",
"type",
"defaultValue"
],
"additionalProperties": false
}
}
}
}
```
### Example
```json
{
"id": "575ece2b7ae143cd83dc4a9b",
"dashboardId": "575ece2b7ae143cd83dc4a9b",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"ownerId": "575ed70c7ae143cd83dc4aa9",
"ownerType": "user",
"name": "My Dashboard",
"description": "The best dashboard description",
"refreshRate": 60,
"public": false,
"blocks": [],
"reportConfigs": [
{
"toEmail": [
"test@email.com"
],
"cron": "0 0 12 * * MON-FRI *",
"theme": "dark",
"subject": "Daily Dashboard Report"
}
]
}
```
## Dashboard Context Instance
Schema for a dashboard context instance
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"string",
"number"
]
}
},
"additionalProperties": false
}
```
### Example
```json
{
"myContextVariable": "myValue",
"myOtherVariable": "575ecf887ae143cd83dc4aa2"
}
```
## Dashboard Patch
Schema for the body of a Dashboard modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"blockType": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 255
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"startX": {
"type": "number"
},
"startY": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"config": {
"type": "object"
}
},
"required": [
"blockType",
"startX",
"startY",
"width",
"height"
],
"additionalProperties": false
}
},
"reportConfigs": {
"type": "array",
"max": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"cron",
"toEmail"
],
"properties": {
"id": {
"type": "string",
"max": 14
},
"cron": {
"type": "string"
},
"toEmail": {
"type": "array",
"min": 1,
"max": 10,
"items": {
"type": "string",
"format": "email",
"maxLength": 1024
}
},
"subject": {
"type": "string",
"max": 255
},
"message": {
"type": "string",
"max": 32767
},
"theme": {
"type": "string",
"enum": [
"dark",
"light"
]
},
"timezone": {
"type": "string",
"max": 255
}
}
}
},
"description": {
"type": "string",
"maxLength": 32767
},
"refreshRate": {
"type": "number",
"minimum": 5,
"maximum": 600
},
"public": {
"type": "boolean"
},
"password": {
"type": [
"string",
"null"
]
},
"contextConfiguration": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"type": {
"type": "string",
"enum": [
"deviceId",
"deviceAttribute",
"string",
"number"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"defaultValue": {
"type": [
"string",
"number"
]
},
"validationEnabled": {
"type": "boolean"
},
"validationConfig": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"regExp": {
"type": "string",
"maxLength": 1024
},
"attributes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
}
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
}
},
"additionalProperties": false
}
},
"required": [
"name",
"type",
"defaultValue"
],
"additionalProperties": false
}
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated Dashboard",
"description": "Description of my updated dashboard",
"refreshRate": 300,
"public": true
}
```
## Dashboard Post
Schema for the body of a Dashboard creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"orgId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"blockType": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 255
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"startX": {
"type": "number"
},
"startY": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"config": {
"type": "object"
}
},
"required": [
"blockType",
"startX",
"startY",
"width",
"height"
],
"additionalProperties": false
}
},
"description": {
"type": "string",
"maxLength": 32767
},
"refreshRate": {
"type": "number",
"minimum": 5,
"maximum": 600
},
"reportConfigs": {
"type": "array",
"max": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"cron",
"toEmail"
],
"properties": {
"id": {
"type": "string",
"max": 14
},
"cron": {
"type": "string"
},
"toEmail": {
"type": "array",
"min": 1,
"max": 10,
"items": {
"type": "string",
"format": "email",
"maxLength": 1024
}
},
"subject": {
"type": "string",
"max": 255
},
"message": {
"type": "string",
"max": 32767
},
"theme": {
"type": "string",
"enum": [
"dark",
"light"
]
},
"timezone": {
"type": "string",
"max": 255
}
}
}
},
"public": {
"type": "boolean"
},
"password": {
"type": [
"string",
"null"
]
},
"contextConfiguration": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"type": {
"type": "string",
"enum": [
"deviceId",
"deviceAttribute",
"string",
"number"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"defaultValue": {
"type": [
"string",
"number"
]
},
"validationEnabled": {
"type": "boolean"
},
"validationConfig": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"regExp": {
"type": "string",
"maxLength": 1024
},
"attributes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
}
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
}
},
"additionalProperties": false
}
},
"required": [
"name",
"type",
"defaultValue"
],
"additionalProperties": false
}
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My New Dashboard",
"public": false
}
```
## Dashboards
Schema for a collection of Dashboards
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Dashboard",
"description": "Schema for a single Dashboard",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"dashboardId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"ownerId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"ownerType": {
"type": "string",
"enum": [
"user",
"organization"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"refreshRate": {
"type": "number",
"minimum": 5,
"maximum": 600
},
"isPasswordProtected": {
"type": "boolean"
},
"public": {
"type": "boolean"
},
"reportConfigs": {
"type": "array",
"max": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"cron",
"toEmail"
],
"properties": {
"id": {
"type": "string",
"max": 14
},
"cron": {
"type": "string"
},
"toEmail": {
"type": "array",
"min": 1,
"max": 10,
"items": {
"type": "string",
"format": "email",
"maxLength": 1024
}
},
"subject": {
"type": "string",
"max": 255
},
"message": {
"type": "string",
"max": 32767
},
"theme": {
"type": "string",
"enum": [
"dark",
"light"
]
},
"timezone": {
"type": "string",
"max": 255
}
}
}
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"blockType": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 255
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"startX": {
"type": "number"
},
"startY": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"config": {
"type": "object"
}
},
"required": [
"blockType",
"startX",
"startY",
"width",
"height"
],
"additionalProperties": false
}
},
"contextConfiguration": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"type": {
"type": "string",
"enum": [
"deviceId",
"deviceAttribute",
"string",
"number"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"defaultValue": {
"type": [
"string",
"number"
]
},
"validationEnabled": {
"type": "boolean"
},
"validationConfig": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"regExp": {
"type": "string",
"maxLength": 1024
},
"attributes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
}
},
"deviceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"deviceTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
}
},
"additionalProperties": false
}
},
"required": [
"name",
"type",
"defaultValue"
],
"additionalProperties": false
}
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ece2b7ae143cd83dc4a9b",
"dashboardId": "575ece2b7ae143cd83dc4a9b",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"ownerId": "575ed70c7ae143cd83dc4aa9",
"ownerType": "user",
"name": "My Dashboard",
"description": "The best dashboard description",
"refreshRate": 60,
"public": false,
"blocks": [],
"reportConfigs": [
{
"toEmail": [
"test@email.com"
],
"cron": "0 0 12 * * MON-FRI *",
"theme": "dark",
"subject": "Daily Dashboard Report"
}
]
}
],
"count": 1,
"totalCount": 5,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc"
}
```
## Data Table
Schema for a single Data Table
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"dataTableId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"columns": {
"type": "array",
"items": {
"title": "Data Table Column",
"description": "Schema for a single Data Table Column",
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
},
"constraint": {
"type": "string",
"enum": [
"unique",
"required",
"optional"
]
},
"defaultValue": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"name",
"dataType",
"constraint"
],
"additionalProperties": false
},
"maxItems": 50
}
}
}
```
### Example
```json
{
"id": "596e6ce831761df4231708f1",
"dataTableId": "596e6ce831761df4231708f1",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Data Table",
"columns": [
{
"name": "myColumn1",
"dataType": "string",
"defaultValue": "aDefault"
}
]
}
```
## Data Table Column
Schema for a single Data Table Column
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
},
"constraint": {
"type": "string",
"enum": [
"unique",
"required",
"optional"
]
},
"defaultValue": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"name",
"dataType",
"constraint"
],
"additionalProperties": false
}
```
### Example
```json
{
"name": "myOptionalColumn",
"dataType": "string",
"constraint": "optional",
"defaultValue": "aDefault"
}
```
## Data Table Patch
Schema for the body of a Data Table modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated Data Table"
}
```
## Data Table Post
Schema for the body of a Data Table creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"columns": {
"type": "array",
"items": {
"title": "Data Table Column",
"description": "Schema for a single Data Table Column",
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
},
"constraint": {
"type": "string",
"enum": [
"unique",
"required",
"optional"
]
},
"defaultValue": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"name",
"dataType",
"constraint"
],
"additionalProperties": false
},
"maxItems": 50
}
},
"required": [
"name"
],
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Data Table",
"columns": [
{
"name": "myColumn1",
"dataType": "string",
"constraint": "unique"
}
]
}
```
## Data Table Query
Schema for a data table query
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"$and": {
"type": "array",
"items": {
"$ref": "#/definitions/dataTableQuery"
}
},
"$or": {
"type": "array",
"items": {
"$ref": "#/definitions/dataTableQuery"
}
}
},
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"oneOf": [
{
"type": [
"string",
"number",
"boolean",
"null"
]
},
{
"type": "object",
"properties": {
"$eq": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"$ne": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"$gt": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"$lt": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"$gte": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"$lte": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
}
]
}
},
"additionalProperties": false
}
```
### Example
```json
{
"$or": [
{
"myCol1": {
"$ne": 0
}
},
{
"myCol2": 5
}
]
}
```
## Data Table Row
Schema for a single Data Table Row
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
}
```
### Example
```json
{
"id": "596fbb703fc088453872e609",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"myColumn": "myValue"
}
```
## Data Table Row Insert/Update
Schema for inserting or updating a data table row
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"additionalProperties": false
}
```
### Example
```json
{
"myColumn1": "myValue"
}
```
## Data Table Rows
Schema for a collection of Data Table Rows
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Data Table Row",
"description": "Schema for a single Data Table Row",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"sortColumn": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"dataTableId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "596fbb703fc088453872e609",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"myColumn": "myValue"
}
],
"count": 1,
"totalCount": 4,
"offset": 0,
"limit": 1,
"sortColumn": "myColumn1",
"sortDirection": "asc",
"dataTableId": "596e6ce831761df4231708f1",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Data Tables
Schema for a collection of Data Tables
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Data Table",
"description": "Schema for a single Data Table",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"dataTableId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"columns": {
"type": "array",
"items": {
"title": "Data Table Column",
"description": "Schema for a single Data Table Column",
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
},
"constraint": {
"type": "string",
"enum": [
"unique",
"required",
"optional"
]
},
"defaultValue": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"name",
"dataType",
"constraint"
],
"additionalProperties": false
},
"maxItems": 50
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "596e6ce831761df4231708f1",
"dataTableId": "596e6ce831761df4231708f1",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Data Table",
"columns": [
{
"name": "myColumn1",
"dataType": "string",
"defaultValue": "aDefault"
}
]
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Device
Schema for a single Device
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"connectionInfo": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time"
},
"connected": {
"enum": [
1,
0,
null
]
}
}
}
}
}
```
### Example
```json
{
"id": "575ecf887ae143cd83dc4aa2",
"deviceId": "575ecf887ae143cd83dc4aa2",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Device",
"description": "A device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
},
{
"key": "floor",
"value": "8"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone",
"connectionInfo": {
"time": "2016-06-14T08:15:00.000Z",
"connected": 1
}
}
```
## Device Command
Schema for a command for a single Device
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"payload": {}
},
"required": [
"name"
],
"additionalProperties": false
}
```
### Example
```json
{
"time": "2016-06-13T04:00:00.000Z",
"name": "myCommand",
"payload": [
1,
1,
2,
3,
5
]
}
```
## Device Commands
Schema for an array of Device Commands
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"title": "Device Command",
"description": "Schema for a command for a single Device",
"type": "object",
"properties": {
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"payload": {}
},
"required": [
"name"
],
"additionalProperties": false
}
}
```
### Example
```json
[
{
"time": "2016-06-13T04:00:00.000Z",
"name": "myCommand",
"payload": [
1,
1,
2,
3,
5
]
},
{
"time": "2016-06-13T04:00:00.000Z",
"name": "myCommand",
"payload": [
1,
1,
2,
3,
5
]
}
]
```
## Device Credentials
Schema for the body of a Device authentication request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"key": {
"type": "string"
},
"secret": {
"type": "string"
}
},
"required": [
"deviceId",
"key",
"secret"
],
"additionalProperties": false
}
```
### Example
```json
{
"deviceId": "575ecf887ae143cd83dc4aa2",
"key": "this_would_be_the_key",
"secret": "this_would_be_the_secret"
}
```
## Device Log
Log of connection information for a Device
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"connected": {
"enum": [
1,
0
]
},
"time": {
"type": "string",
"format": "date-time"
},
"disconnectReason": {
"type": "string"
},
"messagesFromClient": {
"type": "number"
},
"messagesToClient": {
"type": "number"
}
}
}
}
```
### Example
```json
[
{
"connected": 1,
"time": "2016-06-03T00:56:22.447Z"
},
{
"connected": 0,
"disconnectReason": "Connection Lost",
"messagesFromClient": 2548,
"messagesToClient": 0,
"time": "2016-06-03T00:56:21.028Z"
},
{
"connected": 1,
"time": "2016-06-01T06:24:39.190Z"
},
{
"connected": 0,
"disconnectReason": "Connection Lost",
"messagesFromClient": 479,
"messagesToClient": 0,
"time": "2016-06-01T06:24:37.925Z"
},
{
"connected": 1,
"time": "2016-05-31T22:24:48.777Z"
}
]
```
## Device Patch
Schema for the body of a Device modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated Device",
"description": "Description of my updated device",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
```
## Device Post
Schema for the body of a Device creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My New Device",
"description": "Description of my new device",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
```
## Device Recipe
Schema for a single Device Recipe
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceRecipeId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"deviceName": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"deviceDescription": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"id": "575ecec57ae143cd83dc4a9f",
"deviceRecipeId": "575ecec57ae143cd83dc4a9f",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "Actual recipe name",
"deviceName": "Future device name",
"description": "My recipe description",
"deviceDescription": "Future device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
```
## Device Recipe Bulk Create
Schema for the result of a bulk Device creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"created": {
"type": "number"
},
"failed": {
"type": "number"
},
"csvResult": {
"type": "string"
}
}
}
```
### Example
```json
{
"created": 10,
"failed": 0,
"csvResult": "a,comma,separated,string,of,results"
}
```
## Device Recipe Bulk Create Post
Schema for the body of a bulk Device creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"nameColumn": {
"type": "string"
},
"descriptionColumn": {
"type": "string"
},
"csv": {
"type": "string"
},
"makeUniqueKeySecret": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"csv"
]
}
```
### Example
```json
{
"nameColumn": "myNameColumn",
"descriptionColumn": "column2",
"csv": "a,comma,separated,string,of,input,data"
}
```
## Device Recipe Patch
Schema for the body of a Device Recipe modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"deviceName": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"deviceDescription": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My Updated Device Recipe",
"deviceName": "Future device name",
"description": "Description of my updated device recipe",
"deviceDescription": "Future device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
```
## Device Recipe Post
Schema for the body of a Device Recipe creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"deviceName": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"deviceDescription": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My New Device Recipe",
"deviceName": "Future device name",
"description": "Description of my new device recipe",
"deviceDescription": "Future device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
```
## Device Recipes
Schema for a collection of Device Recipes
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Device Recipe",
"description": "Schema for a single Device Recipe",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceRecipeId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"deviceName": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"deviceDescription": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ecec57ae143cd83dc4a9f",
"deviceRecipeId": "575ecec57ae143cd83dc4a9f",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "Actual recipe name",
"deviceName": "Future device name",
"description": "My recipe description",
"deviceDescription": "Future device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone"
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Single or Multiple Device States
Schema for a single device state or an array of device states
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"oneOf": [
{
"title": "Device State",
"description": "Schema for a single Device state",
"type": "object",
"properties": {
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"relayId": {
"type": "string"
},
"meta": {},
"data": {
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"number",
"string",
"boolean"
]
}
},
"additionalProperties": false
},
"flowVersion": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"data"
],
"additionalProperties": false
},
{
"title": "Device States",
"description": "Schema for an array of Device states",
"type": "array",
"items": {
"title": "Device State",
"description": "Schema for a single Device state",
"type": "object",
"properties": {
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"relayId": {
"type": "string"
},
"meta": {},
"data": {
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"number",
"string",
"boolean"
]
}
},
"additionalProperties": false
},
"flowVersion": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"data"
],
"additionalProperties": false
}
}
]
}
```
### Example
```json
{
"time": "2016-06-13T04:00:00.000Z",
"data": {
"voltage": 22.4
}
}
```
## Device States
Schema for an array of Device states
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"title": "Device State",
"description": "Schema for a single Device state",
"type": "object",
"properties": {
"time": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "object",
"properties": {
"$date": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"$date"
]
}
]
},
"relayId": {
"type": "string"
},
"meta": {},
"data": {
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": [
"number",
"string",
"boolean"
]
}
},
"additionalProperties": false
},
"flowVersion": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"data"
],
"additionalProperties": false
}
}
```
### Example
```json
[
{
"time": "2016-06-13T04:00:00.000Z",
"data": {
"voltage": 22.4
}
},
{
"time": "2016-06-13T04:00:00.000Z",
"data": {
"voltage": 22.4
}
}
]
```
## Device Tag Filter
Array of Tags for filtering devices. Tag keys and tag values are optional.
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
},
"maxItems": 100
}
```
### Example
```json
[
{
"value": "red"
},
{
"key": "floor",
"value": 2
}
]
```
## Devices
Schema for a collection of Devices
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Device",
"description": "Schema for a single Device",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"deviceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"maxItems": 100
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[0-9a-zA-Z_-]{1,255}$"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"gps",
"boolean"
]
}
},
"required": [
"name",
"dataType"
],
"additionalProperties": false
},
"maxItems": 100
},
"deviceClass": {
"type": "string",
"enum": [
"standalone",
"gateway",
"peripheral",
"floating"
]
},
"gatewayId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"connectionInfo": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time"
},
"connected": {
"enum": [
1,
0,
null
]
}
}
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ecf887ae143cd83dc4aa2",
"deviceId": "575ecf887ae143cd83dc4aa2",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Device",
"description": "A device description",
"tags": [
{
"key": "TagKey",
"value": "TagValue"
},
{
"key": "floor",
"value": "8"
}
],
"attributes": [
{
"name": "voltage",
"dataType": "number"
}
],
"deviceClass": "standalone",
"connectionInfo": {
"time": "2016-06-14T08:15:00.000Z",
"connected": 1
}
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Disable Two Factor Auth
Schema for the body of a request to disable two factor auth
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"twoFactorCode": {
"type": "string",
"maxLength": 2048
},
"password": {
"type": "string",
"minLength": 8,
"maxLength": 2048
}
},
"required": [
"password",
"twoFactorCode"
],
"additionalProperties": false
}
```
### Example
```json
{
"twoFactorCode": "123123",
"password": "this would be your password"
}
```
## Enable Two Factor Auth
Schema for the body of a request to enable two factor auth
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"twoFactorAuthKey": {
"type": "string",
"minLength": 52,
"maxLength": 52
},
"password": {
"type": "string",
"minLength": 8,
"maxLength": 2048
}
},
"required": [
"password",
"twoFactorAuthKey"
],
"additionalProperties": false
}
```
### Example
```json
{
"twoFactorAuthKey": "HBBGWJJVOVLXS4ZGNRTDOUKTMESFUR3BMRWVQND2HJYT44TOMVJA",
"password": "this would be your password"
}
```
## Error
Schema for errors returned by the API
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
```
### Example
```json
{
"type": "NotFound",
"message": "Application was not found"
}
```
## Event
Schema for a single Event
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"eventId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"sourceType": {
"type": "string",
"enum": [
"flow",
"user",
"device",
"apiToken"
]
},
"sourceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"level": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
},
"state": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"message": {
"type": "string",
"maxLength": 32767
},
"data": {},
"updates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceType": {
"type": "string",
"enum": [
"flow",
"user",
"device",
"apiToken"
]
},
"sourceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"comment": {
"type": "string",
"maxLength": 32767
},
"data": {},
"stateChange": {
"type": "object",
"properties": {
"old": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"new": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
}
}
}
}
}
}
}
}
```
### Example
```json
{
"id": "575ed0de7ae143cd83dc4aa5",
"eventId": "575ed0de7ae143cd83dc4aa5",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"sourceType": "user",
"sourceId": "575ed70c7ae143cd83dc4aa9",
"level": "info",
"state": "new",
"subject": "Power levels critical",
"message": "Power levels on device 432 have surpassed critical thresholds",
"updates": []
}
```
## Event Patch
Schema for the body of an Event modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"comment": {
"type": "string",
"maxLength": 32767
},
"data": {}
},
"additionalProperties": false
}
```
### Example
```json
{
"state": "acknowledged",
"comment": "Looking into this issue"
}
```
## Event Post
Schema for the body of an Event creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
},
"state": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"message": {
"type": "string",
"maxLength": 32767
},
"data": {}
},
"required": [
"level",
"state",
"subject"
],
"additionalProperties": false
}
```
### Example
```json
{
"level": "info",
"state": "new",
"subject": "Power levels critical",
"message": "Power levels on device 432 have surpassed critical thresholds"
}
```
## Events
Schema for a collection of Events
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Event",
"description": "Schema for a single Event",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"eventId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"sourceType": {
"type": "string",
"enum": [
"flow",
"user",
"device",
"apiToken"
]
},
"sourceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"level": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
},
"state": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"message": {
"type": "string",
"maxLength": 32767
},
"data": {},
"updates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceType": {
"type": "string",
"enum": [
"flow",
"user",
"device",
"apiToken"
]
},
"sourceId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"comment": {
"type": "string",
"maxLength": 32767
},
"data": {},
"stateChange": {
"type": "object",
"properties": {
"old": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"new": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
}
}
}
}
}
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"state": {
"type": "string",
"enum": [
"new",
"acknowledged",
"resolved"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "575ed0de7ae143cd83dc4aa5",
"eventId": "575ed0de7ae143cd83dc4aa5",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"sourceType": "user",
"sourceId": "575ed70c7ae143cd83dc4aa9",
"level": "info",
"state": "new",
"subject": "Power levels critical",
"message": "Power levels on device 432 have surpassed critical thresholds",
"updates": []
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "subject",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97",
"state": "new"
}
```
## Experience Endpoint
Schema for a single Experience Endpoint
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceEndpointId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string",
"maxLength": 32767
},
"route": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"enabled": {
"type": "boolean"
},
"method": {
"type": "string",
"enum": [
"delete",
"get",
"options",
"patch",
"post",
"put"
]
},
"access": {
"type": "string",
"enum": [
"public",
"authenticated",
"group"
]
},
"experienceGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
}
}
}
```
### Example
```json
{
"id": "58c1de6c8f812590d8e82980",
"experienceEndpointId": "58c1de6c8f812590d8e82980",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"route": "/my/route/{id}",
"enabled": true,
"method": "get",
"access": "group",
"experienceGroups": [
{
"name": "myGroup",
"id": "58b9d794cbfafe1be675744f"
}
]
}
```
## Experience Endpoint Patch
Schema for the body of an Experience Endpoint modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"description": {
"type": "string",
"maxLength": 32767
},
"route": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"enabled": {
"type": "boolean"
},
"method": {
"type": "string",
"enum": [
"delete",
"get",
"options",
"patch",
"post",
"put"
]
},
"access": {
"type": "string",
"enum": [
"public",
"authenticated",
"group"
]
},
"experienceGroupIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
},
"additionalProperties": false
}
```
### Example
```json
{
"access": "group",
"experienceGroupIds": [
"58c1de6f8f812590d8e82983"
]
}
```
## Experience Endpoint Post
Schema for the body of an Experience Endpoint creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"description": {
"type": "string",
"maxLength": 32767
},
"route": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"enabled": {
"type": "boolean"
},
"method": {
"type": "string",
"enum": [
"delete",
"get",
"options",
"patch",
"post",
"put"
]
},
"access": {
"type": "string",
"enum": [
"public",
"authenticated",
"group"
]
},
"experienceGroupIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
},
"additionalProperties": false,
"required": [
"route",
"method"
]
}
```
### Example
```json
{
"route": "/my/route/{id}",
"method": "get",
"access": "public"
}
```
## Experience Endpoint Stats
Schema for stats for an experience's endpoints
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"patternProperties": {
".*": {
"type": "array",
"items": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time"
},
"count": {
"type": "number"
}
}
}
}
}
}
```
### Example
```json
{
"58cae95a0f5fcd000138ed0d": [
{
"time": "2017-03-21T20:00:00.000Z",
"count": 10
},
{
"time": "2017-03-21T21:00:00.000Z",
"count": 1
}
],
"NotFound": [
{
"time": "2017-03-21T20:00:00.000Z",
"count": 1
},
{
"time": "2017-03-21T21:00:00.000Z",
"count": 4
}
]
}
```
## Experience Endpoints
Schema for a collection of Experience Endpoints
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Experience Endpoint",
"description": "Schema for a single Experience Endpoint",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceEndpointId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string",
"maxLength": 32767
},
"route": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"enabled": {
"type": "boolean"
},
"method": {
"type": "string",
"enum": [
"delete",
"get",
"options",
"patch",
"post",
"put"
]
},
"access": {
"type": "string",
"enum": [
"public",
"authenticated",
"group"
]
},
"experienceGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceGroupId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"notFoundRequestCount": {
"type": "number"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "58c1de6c8f812590d8e82980",
"experienceEndpointId": "58c1de6c8f812590d8e82980",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"route": "/my/route/{id}",
"enabled": true,
"method": "get",
"access": "group",
"experienceGroups": [
{
"name": "myGroup",
"id": "58b9d794cbfafe1be675744f"
}
]
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Experience Group
Schema for a single Experience Group
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceGroupId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"experienceUserIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"experienceEndpointIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
}
}
```
### Example
```json
{
"id": "58b9d794cbfafe1be675744f",
"experienceGroupId": "58b9d794cbfafe1be675744f",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Group",
"experienceUserIds": [
"58b9d782cbfafe1be675744d",
"58b9d787cbfafe1be675744e"
],
"experienceEndpointIds": [
"58b9d743cbfafe1be675744b",
"58b9d743cbfafe1be675744c"
]
}
```
## Experience Group Patch
Schema for the body of an Experience Group modification request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"experienceUserIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"experienceEndpointIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
},
"additionalProperties": false
}
```
### Example
```json
{
"name": "My New Group Name",
"experienceUserIds": [
"575ed70c7ae143cd83dc4aa9",
"675ed70c7ae143cd83dc4aa9"
],
"experienceEndpointIds": [
"58b9d743cbfafe1be675744b",
"58b9d743cbfafe1be675744c"
]
}
```
## Experience Group Post
Schema for the body of an Experience Group creation request
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"experienceUserIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"experienceEndpointIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
},
"additionalProperties": false,
"required": [
"name"
]
}
```
### Example
```json
{
"name": "My Group",
"experienceUserIds": [
"575ed70c7ae143cd83dc4aa9",
"675ed70c7ae143cd83dc4aa9"
],
"experienceEndpointIds": [
"58b9d743cbfafe1be675744b",
"58b9d743cbfafe1be675744c"
]
}
```
## Experience Groups
Schema for a collection of Experience Groups
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"title": "Experience Group",
"description": "Schema for a single Experience Group",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceGroupId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"experienceUserIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
},
"experienceEndpointIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"maxItems": 1000
}
}
}
},
"count": {
"type": "integer"
},
"totalCount": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"page": {
"type": "integer"
},
"filter": {
"type": "string"
},
"filterField": {
"type": "string"
},
"sortField": {
"type": "string"
},
"sortDirection": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
}
}
}
```
### Example
```json
{
"items": [
{
"id": "58b9d794cbfafe1be675744f",
"experienceGroupId": "58b9d794cbfafe1be675744f",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Group",
"experienceUserIds": [
"58b9d782cbfafe1be675744d",
"58b9d787cbfafe1be675744e"
],
"experienceEndpointIds": [
"58b9d743cbfafe1be675744b",
"58b9d743cbfafe1be675744c"
]
}
],
"count": 1,
"totalCount": 4,
"perPage": 1,
"page": 0,
"sortField": "name",
"sortDirection": "asc",
"applicationId": "575ec8687ae143cd83dc4a97"
}
```
## Experience Template
Schema for a single Experience Template
### Schema
```json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"experienceTemplateId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"applicationId": {
"type": "string",
"pattern": "^[A-Fa-f\\d]{24}$"
},
"creationDate": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 32767
},
"templateType": {
"type": "string",
"enum": [
"layout",
"page",
"component"
]
},
"layoutId": {
"type": [
"string",
"null"
],
"pattern": "^[A-Fa-f\\d]{24}$"
},
"body": {
"type": "string",
"maxLength": 131072,
"minLength": 1
},
"templateTags": {
"type": "object",
"patternProperties": {
"^[0-9a-zA-Z_-]{1,255}$": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"additionalProperties": false
}
}
}
```
### Example
```json
{
"id": "59cc5c628246c6caed4b16c1",
"experienceTemplateId": "59cc5c628246c6caed4b16c1",
"applicationId": "575ec8687ae143cd83dc4a97",
"creationDate": "2016-06-13T04:00:00.000Z",
"lastUpdated": "2016-06-13T04:00:00.000Z",
"name": "My Page Template",
"templateType": "page",
"body": "
{{data}}
", "layoutId": "59cc5cad8246c6caed4b16c2", "templateTags": { "customKey": "customValue" } } ```{{newData}}
", "templateTags": { "customKey": "newCustomValue" } } ```{{data}}
", "layoutId": "59cc5cad8246c6caed4b16c2", "templateTags": { "customKey": "customValue" } } ```{{data}}
", "layoutId": "59cc5cad8246c6caed4b16c2", "templateTags": { "customKey": "customValue" } } ], "count": 1, "totalCount": 4, "perPage": 1, "page": 0, "sortField": "name", "sortDirection": "asc", "applicationId": "575ec8687ae143cd83dc4a97" } ```