{ "openapi": "3.0.1", "info": { "title": "openHAB REST API", "contact": { "name": "openHAB", "url": "https://www.openhab.org/docs/" }, "version": "8" }, "servers": [ { "url": "/rest" } ], "paths": { "/module-types": { "get": { "tags": [ "module-types" ], "summary": "Get all available module types.", "operationId": "getModuleTypes", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "tags", "in": "query", "description": "tags for filtering", "schema": { "type": "string" } }, { "name": "type", "in": "query", "description": "filtering by action, condition or trigger", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ModuleTypeDTO" } } } } } } } }, "/module-types/{moduleTypeUID}": { "get": { "tags": [ "module-types" ], "summary": "Gets a module type corresponding to the given UID.", "operationId": "getModuleTypeById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "moduleTypeUID", "in": "path", "description": "moduleTypeUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModuleTypeDTO" } } } }, "404": { "description": "Module Type corresponding to the given UID does not found." } } } }, "/rules": { "get": { "tags": [ "rules" ], "summary": "Get available rules, optionally filtered by tags and/or prefix.", "operationId": "getRules", "parameters": [ { "name": "prefix", "in": "query", "schema": { "type": "string" } }, { "name": "tags", "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "summary", "in": "query", "description": "summary fields only", "schema": { "type": "boolean" } }, { "name": "staticDataOnly", "in": "query", "description": "provides a cacheable list of values not expected to change regularly and honors the If-Modified-Since header, all other parameters are ignored", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedRuleDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] }, "post": { "tags": [ "rules" ], "summary": "Creates a rule.", "operationId": "createRule", "requestBody": { "description": "rule data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuleDTO" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "Newly created Rule", "schema": { "type": "string" } } } }, "400": { "description": "Creation of the rule is refused. Missing required parameter." }, "409": { "description": "Creation of the rule is refused. Rule with the same UID already exists." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/enable": { "post": { "tags": [ "rules" ], "summary": "Sets the rule enabled status.", "operationId": "enableRule", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "enable", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/actions": { "get": { "tags": [ "rules" ], "summary": "Gets the rule actions.", "operationId": "getRuleActions", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ActionDTO" } } } } }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}": { "get": { "tags": [ "rules" ], "summary": "Gets the rule corresponding to the given UID.", "operationId": "getRuleById", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedRuleDTO" } } } }, "404": { "description": "Rule not found" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "rules" ], "summary": "Updates an existing rule corresponding to the given UID.", "operationId": "updateRule", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "rule data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuleDTO" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "rules" ], "summary": "Removes an existing rule corresponding to the given UID.", "operationId": "deleteRule", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/conditions": { "get": { "tags": [ "rules" ], "summary": "Gets the rule conditions.", "operationId": "getRuleConditions", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConditionDTO" } } } } }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/config": { "get": { "tags": [ "rules" ], "summary": "Gets the rule configuration values.", "operationId": "getRuleConfiguration", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "rules" ], "summary": "Sets the rule configuration values.", "operationId": "updateRuleConfiguration", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "config", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object" } } } } }, "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/{moduleCategory}/{id}": { "get": { "tags": [ "rules" ], "summary": "Gets the rule's module corresponding to the given Category and ID.", "operationId": "getRuleModuleById", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } }, { "name": "moduleCategory", "in": "path", "description": "moduleCategory", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModuleDTO" } } } }, "404": { "description": "Rule corresponding to the given UID does not found or does not have a module with such Category and ID." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/{moduleCategory}/{id}/config": { "get": { "tags": [ "rules" ], "summary": "Gets the module's configuration.", "operationId": "getRuleModuleConfig", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } }, { "name": "moduleCategory", "in": "path", "description": "moduleCategory", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "Rule corresponding to the given UID does not found or does not have a module with such Category and ID." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/{moduleCategory}/{id}/config/{param}": { "get": { "tags": [ "rules" ], "summary": "Gets the module's configuration parameter.", "operationId": "getRuleModuleConfigParameter", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } }, { "name": "moduleCategory", "in": "path", "description": "moduleCategory", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "id", "required": true, "schema": { "type": "string" } }, { "name": "param", "in": "path", "description": "param", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "string" } } } }, "404": { "description": "Rule corresponding to the given UID does not found or does not have a module with such Category and ID." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "rules" ], "summary": "Sets the module's configuration parameter value.", "operationId": "setRuleModuleConfigParameter", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } }, { "name": "moduleCategory", "in": "path", "description": "moduleCategory", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "id", "required": true, "schema": { "type": "string" } }, { "name": "param", "in": "path", "description": "param", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "value", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found or does not have a module with such Category and ID." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/triggers": { "get": { "tags": [ "rules" ], "summary": "Gets the rule triggers.", "operationId": "getRuleTriggers", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TriggerDTO" } } } } }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/{ruleUID}/runnow": { "post": { "tags": [ "rules" ], "summary": "Executes actions of the rule.", "operationId": "runRuleNow_1", "parameters": [ { "name": "ruleUID", "in": "path", "description": "ruleUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "the context for running this rule", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "nullable": true } } } }, "responses": { "200": { "description": "OK" }, "404": { "description": "Rule corresponding to the given UID does not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/rules/schedule/simulations": { "get": { "tags": [ "rules" ], "summary": "Simulates the executions of rules filtered by tag 'Schedule' within the given times.", "operationId": "getScheduleRuleSimulations", "parameters": [ { "name": "from", "in": "query", "description": "Start time of the simulated rule executions. Will default to the current time. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "schema": { "type": "string" } }, { "name": "until", "in": "query", "description": "End time of the simulated rule executions. Will default to 30 days after the start time. Must be less than 180 days after the given start time. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RuleExecution" } } } } }, "400": { "description": "The max. simulation duration of 180 days is exceeded." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/templates": { "get": { "tags": [ "templates" ], "summary": "Get all available templates.", "operationId": "getTemplates", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Template" } } } } } } } }, "/templates/{templateUID}": { "get": { "tags": [ "templates" ], "summary": "Gets a template corresponding to the given UID.", "operationId": "getTemplateById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "templateUID", "in": "path", "description": "templateUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Template" } } } }, "404": { "description": "Template corresponding to the given UID does not found." } } } }, "/actions/{thingUID}/{actionUid}": { "post": { "tags": [ "actions" ], "summary": "Executes a thing action.", "operationId": "executeThingAction", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } }, { "name": "actionUid", "in": "path", "description": "action type UID (including scope, separated by '.')", "required": true, "schema": { "pattern": "[a-zA-Z0-9]+\\.[a-zA-Z0-9]+", "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "requestBody": { "description": "action inputs as map (parameter name as key / argument as value)", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object" } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "Action not found" }, "500": { "description": "Creation of action handler or execution failed" } } } }, "/actions/{thingUID}": { "get": { "tags": [ "actions" ], "summary": "Get all available actions for provided thing UID", "operationId": "getAvailableActionsForThing", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ThingActionDTO" } } } } }, "204": { "description": "No actions found." } } } }, "/uuid": { "get": { "tags": [ "uuid" ], "summary": "A unified unique id.", "operationId": "getUUID", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "string" } } } } } } }, "/audio/defaultsink": { "get": { "tags": [ "audio" ], "summary": "Get the default sink if defined or the first available sink.", "operationId": "getAudioDefaultSink", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AudioSinkDTO" } } } }, "404": { "description": "Sink not found" } } } }, "/audio/defaultsource": { "get": { "tags": [ "audio" ], "summary": "Get the default source if defined or the first available source.", "operationId": "getAudioDefaultSource", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AudioSourceDTO" } } } }, "404": { "description": "Source not found" } } } }, "/audio/sinks": { "get": { "tags": [ "audio" ], "summary": "Get the list of all sinks.", "operationId": "getAudioSinks", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AudioSinkDTO" } } } } } } } }, "/audio/sources": { "get": { "tags": [ "audio" ], "summary": "Get the list of all sources.", "operationId": "getAudioSources", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AudioSourceDTO" } } } } } } } }, "/auth/logout": { "post": { "tags": [ "auth" ], "summary": "Delete the session associated with a refresh token.", "operationId": "deleteSession", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "refresh_token": { "type": "string" }, "id": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK" }, "401": { "description": "User is not authenticated" }, "404": { "description": "User or refresh token not found" } } } }, "/auth/apitokens": { "get": { "tags": [ "auth" ], "summary": "List the API tokens associated to the authenticated user.", "operationId": "getApiTokens", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserApiTokenDTO" } } } } }, "401": { "description": "User is not authenticated" }, "404": { "description": "User not found" } } } }, "/auth/sessions": { "get": { "tags": [ "auth" ], "summary": "List the sessions associated to the authenticated user.", "operationId": "getSessionsForCurrentUser", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserSessionDTO" } } } } }, "401": { "description": "User is not authenticated" }, "404": { "description": "User not found" } } } }, "/auth/token": { "post": { "tags": [ "auth" ], "summary": "Get access and refresh tokens.", "operationId": "getOAuthToken", "parameters": [ { "name": "useCookie", "in": "query", "schema": { "type": "boolean" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { "grant_type": { "type": "string" }, "code": { "type": "string" }, "redirect_uri": { "type": "string" }, "client_id": { "type": "string" }, "refresh_token": { "type": "string" }, "code_verifier": { "type": "string" } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenResponseDTO" } } } }, "400": { "description": "Invalid request parameters" } } } }, "/auth/apitokens/{name}": { "delete": { "tags": [ "auth" ], "summary": "Revoke a specified API token associated to the authenticated user.", "operationId": "removeApiToken", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "401": { "description": "User is not authenticated" }, "404": { "description": "User or API token not found" } } } }, "/addons": { "get": { "tags": [ "addons" ], "summary": "Get all add-ons.", "operationId": "getAddons", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Addon" } } } } }, "404": { "description": "Service not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/{addonId}": { "get": { "tags": [ "addons" ], "summary": "Get add-on with given ID.", "operationId": "getAddonById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "addonId", "in": "path", "description": "addon ID", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-:]+", "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Addon" } } } }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/{addonId}/config": { "get": { "tags": [ "addons" ], "summary": "Get add-on configuration for given add-on ID.", "operationId": "getAddonConfiguration", "parameters": [ { "name": "addonId", "in": "path", "description": "addon ID", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-:]+", "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "Add-on does not exist" }, "500": { "description": "Configuration can not be read due to internal error" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "addons" ], "summary": "Updates an add-on configuration for given ID and returns the old configuration.", "operationId": "updateAddonConfiguration", "parameters": [ { "name": "addonId", "in": "path", "description": "Add-on id", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-:]+", "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object" } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "204": { "description": "No old configuration" }, "404": { "description": "Add-on does not exist" }, "500": { "description": "Configuration can not be updated due to internal error" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/services": { "get": { "tags": [ "addons" ], "summary": "Get all add-on types.", "operationId": "getAddonTypes", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AddonType" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/suggestions": { "get": { "tags": [ "addons" ], "summary": "Get suggested add-ons to be installed.", "operationId": "getSuggestedAddons", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Addon" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/types": { "get": { "tags": [ "addons" ], "summary": "Get add-on services.", "operationId": "getAddonServices", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AddonType" } } } } }, "404": { "description": "Service not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/{addonId}/install": { "post": { "tags": [ "addons" ], "summary": "Installs the add-on with the given ID.", "operationId": "installAddonById", "parameters": [ { "name": "addonId", "in": "path", "description": "addon ID", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-:]+", "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/url/{url}/install": { "post": { "tags": [ "addons" ], "summary": "Installs the add-on from the given URL.", "operationId": "installAddonFromURL", "parameters": [ { "name": "url", "in": "path", "description": "addon install URL", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "The given URL is malformed or not valid." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/addons/{addonId}/uninstall": { "post": { "tags": [ "addons" ], "summary": "Uninstalls the add-on with the given ID.", "operationId": "uninstallAddon", "parameters": [ { "name": "addonId", "in": "path", "description": "addon ID", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-:]+", "type": "string" } }, { "name": "serviceId", "in": "query", "description": "service ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/channel-types": { "get": { "tags": [ "channel-types" ], "summary": "Gets all available channel types.", "operationId": "getChannelTypes", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "prefixes", "in": "query", "description": "filter UIDs by prefix (multiple comma-separated prefixes allowed, for example: 'system,mqtt')", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ChannelTypeDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/channel-types/{channelTypeUID}": { "get": { "tags": [ "channel-types" ], "summary": "Gets channel type by UID.", "operationId": "getChannelTypeByUID", "parameters": [ { "name": "channelTypeUID", "in": "path", "description": "channelTypeUID", "required": true, "schema": { "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Channel type with provided channelTypeUID does not exist.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTypeDTO" } } } }, "404": { "description": "No content" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/channel-types/{channelTypeUID}/linkableItemTypes": { "get": { "tags": [ "channel-types" ], "summary": "Gets the item types the given trigger channel type UID can be linked to.", "operationId": "getLinkableItemTypesByChannelTypeUID", "parameters": [ { "name": "channelTypeUID", "in": "path", "description": "channelTypeUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } } }, "204": { "description": "No content: channel type has no linkable items or is no trigger channel." }, "404": { "description": "Given channel type UID not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/config-descriptions": { "get": { "tags": [ "config-descriptions" ], "summary": "Gets all available config descriptions.", "operationId": "getConfigDescriptions", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "scheme", "in": "query", "description": "scheme filter", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/config-descriptions/{uri}": { "get": { "tags": [ "config-descriptions" ], "summary": "Gets a config description by URI.", "operationId": "getConfigDescriptionByURI", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "uri", "in": "path", "description": "uri", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigDescriptionDTO" } } } }, "400": { "description": "Invalid URI syntax" }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/discovery": { "get": { "tags": [ "discovery" ], "summary": "Gets all bindings that support discovery.", "operationId": "getBindingsWithDiscoverySupport", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/discovery/bindings/{bindingId}/scan": { "post": { "tags": [ "discovery" ], "summary": "Starts asynchronous discovery process for a binding and returns the timeout in seconds of the discovery operation.", "operationId": "scan", "parameters": [ { "name": "bindingId", "in": "path", "description": "bindingId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "integer", "format": "int32" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/inbox/{thingUID}/approve": { "post": { "tags": [ "inbox" ], "summary": "Approves the discovery result by adding the thing to the registry.", "operationId": "approveInboxItemById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } }, { "name": "newThingId", "in": "query", "description": "new thing ID", "schema": { "type": "string" } } ], "requestBody": { "description": "thing label", "content": { "text/plain": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "OK" }, "400": { "description": "Invalid new thing ID." }, "404": { "description": "Thing unable to be approved." }, "409": { "description": "No binding found that supports this thing." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/inbox/{thingUID}": { "delete": { "tags": [ "inbox" ], "summary": "Removes the discovery result from the inbox.", "operationId": "removeItemFromInbox", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Discovery result not found in the inbox." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/inbox": { "get": { "tags": [ "inbox" ], "summary": "Get all discovered things.", "operationId": "getDiscoveredInboxItems", "parameters": [ { "name": "includeIgnored", "in": "query", "description": "If true, include ignored inbox entries. Defaults to true", "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DiscoveryResultDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/inbox/{thingUID}/ignore": { "post": { "tags": [ "inbox" ], "summary": "Flags a discovery result as ignored for further processing.", "operationId": "flagInboxItemAsIgnored", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/inbox/{thingUID}/unignore": { "post": { "tags": [ "inbox" ], "summary": "Removes ignore flag from a discovery result.", "operationId": "removeIgnoreFlagOnInboxItem", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items/{itemName}/members/{memberItemName}": { "put": { "tags": [ "items" ], "summary": "Adds a new member to a group item.", "operationId": "addMemberToGroupItem", "parameters": [ { "name": "itemName", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "memberItemName", "in": "path", "description": "member item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item or member item not found or item is not of type group item." }, "405": { "description": "Member item is not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "items" ], "summary": "Removes an existing member from a group item.", "operationId": "removeMemberFromGroupItem", "parameters": [ { "name": "itemName", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "memberItemName", "in": "path", "description": "member item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item or member item not found or item is not of type group item." }, "405": { "description": "Member item is not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items/{itemname}/metadata/{namespace}": { "put": { "tags": [ "items" ], "summary": "Adds metadata to an item.", "operationId": "addMetadataToItem", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "namespace", "in": "path", "description": "namespace", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "metadata", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataDTO" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "201": { "description": "Created" }, "400": { "description": "Metadata value empty." }, "404": { "description": "Item not found." }, "405": { "description": "Metadata not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "items" ], "summary": "Removes metadata from an item.", "operationId": "removeMetadataFromItem", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "namespace", "in": "path", "description": "namespace", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item not found." }, "405": { "description": "Meta data not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items/{itemname}/tags/{tag}": { "put": { "tags": [ "items" ], "summary": "Adds a tag to an item.", "operationId": "addTagToItem", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "tag", "in": "path", "description": "tag", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item not found." }, "405": { "description": "Item not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "items" ], "summary": "Removes a tag from an item.", "operationId": "removeTagFromItem", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "tag", "in": "path", "description": "tag", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item not found." }, "405": { "description": "Item not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items/{itemname}": { "get": { "tags": [ "items" ], "summary": "Gets a single item.", "operationId": "getItemByName", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "metadata", "in": "query", "description": "metadata selector - a comma separated list or a regular expression (returns all if no value given)", "schema": { "type": "string", "default": ".*" } }, { "name": "recursive", "in": "query", "description": "get member items if the item is a group item", "schema": { "type": "boolean", "default": true } }, { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedItemDTO" } } } }, "404": { "description": "Item not found" } } }, "put": { "tags": [ "items" ], "summary": "Adds a new item to the registry or updates the existing item.", "operationId": "addOrUpdateItemInRegistry", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "requestBody": { "description": "item data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupItemDTO" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedItemDTO" } } } }, "201": { "description": "Item created." }, "400": { "description": "Payload invalid." }, "404": { "description": "Item not found or name in path invalid." }, "405": { "description": "Item not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "post": { "tags": [ "items" ], "summary": "Sends a command to an item.", "operationId": "sendItemCommand", "parameters": [ { "name": "X-OpenHAB-Source", "in": "header", "description": "the source of the command; takes priority over the query parameter or JSON body if multiple are set", "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "source", "in": "query", "description": "the source of the command", "schema": { "type": "string" } } ], "requestBody": { "description": "Valid item command (e.g., ON, OFF) either as plain text or JSON", "content": { "text/plain": { "schema": { "type": "string", "example": "ON" } }, "application/json": { "schema": { "type": "object", "properties": { "value": { "type": "string" } }, "required": ["value"] } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Item command null" }, "404": { "description": "Item not found" } } }, "delete": { "tags": [ "items" ], "summary": "Removes an item from the registry.", "operationId": "removeItemFromRegistry", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item not found or item is not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items": { "get": { "tags": [ "items" ], "summary": "Get all available items.", "operationId": "getItems", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "type", "in": "query", "description": "item type filter", "schema": { "type": "string" } }, { "name": "tags", "in": "query", "description": "item tag filter", "schema": { "type": "string" } }, { "name": "metadata", "in": "query", "description": "metadata selector - a comma separated list or a regular expression (returns all if no value given)", "schema": { "type": "string", "default": ".*" } }, { "name": "recursive", "in": "query", "description": "get member items recursively", "schema": { "type": "boolean", "default": false } }, { "name": "fields", "in": "query", "description": "limit output to the given fields (comma separated)", "schema": { "type": "string" } }, { "name": "staticDataOnly", "in": "query", "description": "provides a cacheable list of values not expected to change regularly and checks the If-Modified-Since header, all other parameters are ignored except \"metadata\"", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedItemDTO" } } } } } } }, "put": { "tags": [ "items" ], "summary": "Adds a list of items to the registry or updates the existing items.", "operationId": "addOrUpdateItemsInRegistry", "requestBody": { "description": "array of item data", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GroupItemDTO" } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "type": "string" } } } }, "400": { "description": "Payload is invalid." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/items/{itemname}/state": { "get": { "tags": [ "items" ], "summary": "Gets the state of an item.", "operationId": "getItemState_1", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "string" } } } }, "404": { "description": "Item not found" } } }, "put": { "tags": [ "items" ], "summary": "Updates the state of an item.", "operationId": "updateItemState", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "X-OpenHAB-Source", "in": "header", "description": "the source of the event; takes priority over the query parameter or JSON body if multiple are set", "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "source", "in": "query", "description": "the source of the event", "schema": { "type": "string" } } ], "requestBody": { "description": "valid item state (e.g. ON, OFF)", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "202": { "description": "Accepted" }, "400": { "description": "Item state null" }, "404": { "description": "Item not found" } } } }, "/items/{itemname}/metadata/namespaces": { "get": { "tags": [ "items" ], "summary": "Gets the namespace of an item.", "operationId": "getItemNamespaces", "parameters": [ { "name": "itemname", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "Item not found" } } } }, "/items/{itemName}/semantic/{semanticClass}": { "get": { "tags": [ "items" ], "summary": "Gets the item which defines the requested semantics of an item.", "operationId": "getSemanticItem", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "itemName", "in": "path", "description": "item name", "required": true, "schema": { "pattern": "\\w+", "type": "string" } }, { "name": "semanticClass", "in": "path", "description": "semantic class", "required": true, "schema": { "pattern": "\\w+", "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Item not found" } } } }, "/items/metadata/purge": { "post": { "tags": [ "items" ], "summary": "Remove unused/orphaned metadata.", "operationId": "purgeDatabase", "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/links": { "get": { "tags": [ "links" ], "summary": "Gets all available links.", "operationId": "getItemLinks", "parameters": [ { "name": "channelUID", "in": "query", "description": "filter by channel UID", "schema": { "type": "string" } }, { "name": "itemName", "in": "query", "description": "filter by item name", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedItemChannelLinkDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/links/{itemName}/{channelUID}": { "get": { "tags": [ "links" ], "summary": "Retrieves an individual link.", "operationId": "getItemLink", "parameters": [ { "name": "itemName", "in": "path", "description": "item name", "required": true, "schema": { "type": "string" } }, { "name": "channelUID", "in": "path", "description": "channel UID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedItemChannelLinkDTO" } } } }, "404": { "description": "Content does not match the path" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "links" ], "summary": "Links an item to a channel.", "operationId": "linkItemToChannel", "parameters": [ { "name": "itemName", "in": "path", "description": "itemName", "required": true, "schema": { "type": "string" } }, { "name": "channelUID", "in": "path", "description": "channelUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "link data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ItemChannelLinkDTO" } } } }, "responses": { "200": { "description": "OK" }, "400": { "description": "Content does not match the path" }, "405": { "description": "Link is not editable" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "links" ], "summary": "Unlinks an item from a channel.", "operationId": "unlinkItemFromChannel", "parameters": [ { "name": "itemName", "in": "path", "description": "itemName", "required": true, "schema": { "type": "string" } }, { "name": "channelUID", "in": "path", "description": "channelUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Link not found." }, "405": { "description": "Link not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/links/orphans": { "get": { "tags": [ "links" ], "summary": "Get orphan links between items and broken/non-existent thing channels", "operationId": "getOrphanLinks", "responses": { "200": { "description": "List of broken links" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/links/purge": { "post": { "tags": [ "links" ], "summary": "Remove unused/orphaned links.", "operationId": "purgeDatabase_1", "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/links/{object}": { "delete": { "tags": [ "links" ], "summary": "Delete all links that refer to an item or thing.", "operationId": "removeAllLinksForObject", "parameters": [ { "name": "object", "in": "path", "description": "item name or thing UID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/persistence/{serviceId}": { "get": { "tags": [ "persistence" ], "summary": "Gets a persistence service configuration.", "operationId": "getPersistenceServiceConfiguration", "parameters": [ { "name": "serviceId", "in": "path", "description": "Id of the persistence service.", "required": true, "schema": { "pattern": "[a-zA-Z0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersistenceServiceConfigurationDTO" } } } }, "404": { "description": "Service configuration not found." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "persistence" ], "summary": "Sets a persistence service configuration.", "operationId": "putPersistenceServiceConfiguration", "parameters": [ { "name": "serviceId", "in": "path", "description": "Id of the persistence service.", "required": true, "schema": { "pattern": "[a-zA-Z0-9]+", "type": "string" } } ], "requestBody": { "description": "service configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersistenceServiceConfigurationDTO" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersistenceServiceConfigurationDTO" } } } }, "201": { "description": "PersistenceServiceConfiguration created." }, "400": { "description": "Payload invalid." }, "405": { "description": "PersistenceServiceConfiguration not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "persistence" ], "summary": "Deletes a persistence service configuration.", "operationId": "deletePersistenceServiceConfiguration", "parameters": [ { "name": "serviceId", "in": "path", "description": "Id of the persistence service.", "required": true, "schema": { "pattern": "[a-zA-Z0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Persistence service configuration not found." }, "405": { "description": "Persistence service configuration not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/persistence/items/{itemname}": { "get": { "tags": [ "persistence" ], "summary": "Gets item persistence data from the persistence service.", "operationId": "getItemDataFromPersistenceService", "parameters": [ { "name": "serviceId", "in": "query", "description": "Id of the persistence service. If not provided the default service will be used", "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "The item name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "starttime", "in": "query", "description": "Start time of the data to return. Will default to 1 day before endtime. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "schema": { "type": "string" } }, { "name": "endtime", "in": "query", "description": "End time of the data to return. Will default to current time. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "Page number of data to return. This parameter will enable paging.", "schema": { "type": "integer", "format": "int32" } }, { "name": "pagelength", "in": "query", "description": "The length of each page.", "schema": { "type": "integer", "format": "int32" } }, { "name": "boundary", "in": "query", "description": "Gets one value before and after the requested period.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ItemHistoryDTO" } } } }, "404": { "description": "Unknown Item or persistence service" } } }, "put": { "tags": [ "persistence" ], "summary": "Stores item persistence data into the persistence service.", "operationId": "storeItemDataInPersistenceService", "parameters": [ { "name": "serviceId", "in": "query", "description": "Id of the persistence service. If not provided the default service will be used", "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "The item name.", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "time", "in": "query", "description": "Time of the data to be stored. Will default to current time. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "required": true, "schema": { "type": "string" } }, { "name": "state", "in": "query", "description": "The state to store.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Unknown Item or persistence service" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "persistence" ], "summary": "Deletes item persistence data from a specific persistence service in a given time range.", "operationId": "deleteItemFromPersistenceService", "parameters": [ { "name": "serviceId", "in": "query", "description": "Id of the persistence service.", "required": true, "schema": { "type": "string" } }, { "name": "itemname", "in": "path", "description": "The item name.", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "starttime", "in": "query", "description": "Start of the time range to be deleted. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "required": true, "schema": { "type": "string" } }, { "name": "endtime", "in": "query", "description": "End of the time range to be deleted. [yyyy-MM-dd'T'HH:mm:ss.SSSZ]", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "400": { "description": "Invalid filter parameters" }, "404": { "description": "Unknown persistence service" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/persistence/items": { "get": { "tags": [ "persistence" ], "summary": "Gets a list of items available via a specific persistence service.", "operationId": "getItemsForPersistenceService", "parameters": [ { "name": "serviceId", "in": "query", "description": "Id of the persistence service. If not provided the default service will be used", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/PersistenceItemInfo" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/persistence": { "get": { "tags": [ "persistence" ], "summary": "Gets a list of persistence services.", "operationId": "getPersistenceServices", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceServiceDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/profile-types": { "get": { "tags": [ "profile-types" ], "summary": "Gets all available profile types.", "operationId": "getProfileTypes", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "channelTypeUID", "in": "query", "description": "channel type filter", "schema": { "type": "string" } }, { "name": "itemType", "in": "query", "description": "item type filter", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ProfileTypeDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/services/{serviceId}/config": { "get": { "tags": [ "services" ], "summary": "Get service configuration for given service ID.", "operationId": "getServiceConfig", "parameters": [ { "name": "serviceId", "in": "path", "description": "service ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Configuration can not be read due to internal error" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "services" ], "summary": "Updates a service configuration for given service ID and returns the old configuration.", "operationId": "updateServiceConfig", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "serviceId", "in": "path", "description": "service ID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object" } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "204": { "description": "No old configuration" }, "500": { "description": "Configuration can not be updated due to internal error" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "services" ], "summary": "Deletes a service configuration for given service ID and returns the old configuration.", "operationId": "deleteServiceConfig", "parameters": [ { "name": "serviceId", "in": "path", "description": "service ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "string" } } } }, "204": { "description": "No old configuration" }, "500": { "description": "Configuration can not be deleted due to internal error" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/services": { "get": { "tags": [ "services" ], "summary": "Get all configurable services.", "operationId": "getServices", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurableServiceDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/services/{serviceId}": { "get": { "tags": [ "services" ], "summary": "Get configurable service for given service ID.", "operationId": "getServicesById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "serviceId", "in": "path", "description": "service ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurableServiceDTO" } } } }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/services/{serviceId}/contexts": { "get": { "tags": [ "services" ], "summary": "Get existing multiple context service configurations for the given factory PID.", "operationId": "getServiceContext", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "serviceId", "in": "path", "description": "service ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigurableServiceDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/tags": { "get": { "tags": [ "tags" ], "summary": "Get all available semantic tags.", "operationId": "getSemanticTags", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } } } } } }, "post": { "tags": [ "tags" ], "summary": "Creates a new semantic tag and adds it to the registry.", "operationId": "createSemanticTag", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "requestBody": { "description": "tag data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } } }, "400": { "description": "The tag identifier is invalid or the tag label is missing." }, "409": { "description": "A tag with the same identifier already exists." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/tags/{tagId}": { "get": { "tags": [ "tags" ], "summary": "Gets a semantic tag and its sub tags.", "operationId": "getSemanticTagAndSubTags", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "tagId", "in": "path", "description": "tag id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } } } }, "404": { "description": "Semantic tag not found." } } }, "put": { "tags": [ "tags" ], "summary": "Updates a semantic tag.", "operationId": "updateSemanticTag", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "tagId", "in": "path", "description": "tag id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "tag data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedSemanticTagDTO" } } } }, "404": { "description": "Semantic tag not found." }, "405": { "description": "Semantic tag not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "tags" ], "summary": "Removes a semantic tag and its sub tags from the registry.", "operationId": "removeSemanticTag", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "tagId", "in": "path", "description": "tag id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK, was deleted." }, "404": { "description": "Semantic tag not found." }, "405": { "description": "Semantic tag not removable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things": { "get": { "tags": [ "things" ], "summary": "Get all available things.", "operationId": "getThings", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "summary", "in": "query", "description": "summary fields only", "schema": { "type": "boolean" } }, { "name": "staticDataOnly", "in": "query", "description": "provides a cacheable list of values not expected to change regularly and checks the If-Modified-Since header", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] }, "post": { "tags": [ "things" ], "summary": "Creates a new thing and adds it to the registry.", "operationId": "createThingInRegistry", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "requestBody": { "description": "thing data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ThingDTO" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } }, "400": { "description": "A uid must be provided, if no binding can create a thing of this type." }, "409": { "description": "A thing with the same uid already exists." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}": { "get": { "tags": [ "things" ], "summary": "Gets thing by UID.", "operationId": "getThingById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } }, "404": { "description": "Thing not found." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "things" ], "summary": "Updates a thing.", "operationId": "updateThing", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "thing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ThingDTO" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } }, "404": { "description": "Thing not found." }, "409": { "description": "Thing could not be updated as it is not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "things" ], "summary": "Removes a thing from the registry. Set 'force' to __true__ if you want the thing to be removed immediately.", "operationId": "removeThingById", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } }, { "name": "force", "in": "query", "description": "force", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "OK, was deleted." }, "202": { "description": "ACCEPTED for asynchronous deletion." }, "404": { "description": "Thing not found." }, "409": { "description": "Thing could not be deleted because it's not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/config/status": { "get": { "tags": [ "things" ], "summary": "Gets thing config status.", "operationId": "getThingConfigStatus", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigStatusMessage" } } } } }, "404": { "description": "Thing not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/firmware/status": { "get": { "tags": [ "things" ], "summary": "Gets thing's firmware status.", "operationId": "getThingFirmwareStatus", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/FirmwareStatusDTO" } } } }, "204": { "description": "No firmware status provided by this Thing." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/firmwares": { "get": { "tags": [ "things" ], "summary": "Get all available firmwares for provided thing UID", "operationId": "getAvailableFirmwaresForThing", "parameters": [ { "name": "thingUID", "in": "path", "description": "thingUID", "required": true, "schema": { "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/FirmwareDTO" } } } } }, "204": { "description": "No firmwares found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/status": { "get": { "tags": [ "things" ], "summary": "Gets thing status.", "operationId": "getThingStatus", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ThingStatusInfo" } } } }, "404": { "description": "Thing not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/enable": { "put": { "tags": [ "things" ], "summary": "Sets the thing enabled status.", "operationId": "enableThing", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "enabled", "content": { "text/plain": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } }, "404": { "description": "Thing not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/config": { "put": { "tags": [ "things" ], "summary": "Updates thing's configuration.", "operationId": "updateThingConfig", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "configuration parameters", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object" } } } } }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EnrichedThingDTO" } } } }, "400": { "description": "Configuration of the thing is not valid." }, "404": { "description": "Thing not found" }, "409": { "description": "Thing could not be updated as it is not editable." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/things/{thingUID}/firmware/{firmwareVersion}": { "put": { "tags": [ "things" ], "summary": "Update thing firmware.", "operationId": "updateThingFirmware", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "thingUID", "in": "path", "description": "thing", "required": true, "schema": { "type": "string" } }, { "name": "firmwareVersion", "in": "path", "description": "version", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "Firmware update preconditions not satisfied." }, "404": { "description": "Thing not found." } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/thing-types": { "get": { "tags": [ "thing-types" ], "summary": "Gets all available thing types without config description, channels and properties.", "operationId": "getThingTypes", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "bindingId", "in": "query", "description": "filter by binding Id", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/StrippedThingTypeDTO" } } } } } } } }, "/thing-types/{thingTypeUID}": { "get": { "tags": [ "thing-types" ], "summary": "Gets thing type by UID.", "operationId": "getThingTypeById", "parameters": [ { "name": "thingTypeUID", "in": "path", "description": "thingTypeUID", "required": true, "schema": { "type": "string" } }, { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Thing type with provided thingTypeUID does not exist.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ThingTypeDTO" } } } }, "404": { "description": "No content" } } } }, "/": { "get": { "tags": [ "root" ], "summary": "Gets information about the runtime, the API version and links to resources.", "operationId": "getRoot", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootBean" } } } }, "401": { "description": "User is not authenticated" } } } }, "/systeminfo": { "get": { "tags": [ "systeminfo" ], "summary": "Gets information about the system.", "operationId": "getSystemInformation", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfoBean" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/systeminfo/uom": { "get": { "tags": [ "systeminfo" ], "summary": "Get all supported dimensions and their system units.", "operationId": "getUoMInformation", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UoMInfoBean" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/sitemaps/events/subscribe": { "post": { "tags": [ "sitemaps" ], "summary": "Creates a sitemap event subscription.", "operationId": "createSitemapEventSubscription", "responses": { "201": { "description": "Subscription created.", "headers": { "Location": { "description": "Newly created sitemap event subscription", "schema": { "type": "string" } } } }, "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JerseyResponseBuilderDTO" } } } }, "503": { "description": "Subscriptions limit reached." } } } }, "/sitemaps/{sitemapname}/{pageid}": { "get": { "tags": [ "sitemaps" ], "summary": "Polls the data for one page of a sitemap.", "operationId": "pollDataForPage", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "X-Atmosphere-Transport", "in": "header", "description": "X-Atmosphere-Transport for long polling", "schema": { "type": "string" } }, { "name": "sitemapname", "in": "path", "description": "sitemap name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "pageid", "in": "path", "description": "page id", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "subscriptionid", "in": "query", "description": "subscriptionid", "schema": { "type": "string" } }, { "name": "includeHidden", "in": "query", "description": "include hidden widgets", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageDTO" } } } }, "400": { "description": "Invalid subscription id has been provided." }, "404": { "description": "Sitemap with requested name does not exist or page does not exist, or page refers to a non-linkable widget" } } } }, "/sitemaps/{sitemapname}/*": { "get": { "tags": [ "sitemaps" ], "summary": "Polls the data for a whole sitemap. Not recommended due to potentially high traffic.", "operationId": "pollDataForSitemap", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "X-Atmosphere-Transport", "in": "header", "description": "X-Atmosphere-Transport for long polling", "schema": { "type": "string" } }, { "name": "sitemapname", "in": "path", "description": "sitemap name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "subscriptionid", "in": "query", "description": "subscriptionid", "schema": { "type": "string" } }, { "name": "includeHidden", "in": "query", "description": "include hidden widgets", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SitemapDTO" } } } }, "400": { "description": "Invalid subscription id has been provided." }, "404": { "description": "Sitemap with requested name does not exist" } } } }, "/sitemaps/{sitemapname}": { "get": { "tags": [ "sitemaps" ], "summary": "Get sitemap by name.", "operationId": "getSitemapByName", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "sitemapname", "in": "path", "description": "sitemap name", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } }, { "name": "type", "in": "query", "schema": { "type": "string" } }, { "name": "jsoncallback", "in": "query", "schema": { "type": "string", "default": "callback" } }, { "name": "includeHidden", "in": "query", "description": "include hidden widgets", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SitemapDTO" } } } } } } }, "/sitemaps/events/{subscriptionid}/*": { "get": { "tags": [ "sitemaps" ], "summary": "Get sitemap events for a whole sitemap. Not recommended due to potentially high traffic.", "operationId": "getSitemapEvents", "parameters": [ { "name": "subscriptionid", "in": "path", "description": "subscription id", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-]+", "type": "string" } }, { "name": "sitemap", "in": "query", "description": "sitemap name", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "Missing sitemap parameter, or sitemap not linked successfully to the subscription." }, "404": { "description": "Subscription not found." } } } }, "/sitemaps/events/{subscriptionid}": { "get": { "tags": [ "sitemaps" ], "summary": "Get sitemap events.", "operationId": "getSitemapEvents_1", "parameters": [ { "name": "subscriptionid", "in": "path", "description": "subscription id", "required": true, "schema": { "pattern": "[a-zA-Z_0-9-]+", "type": "string" } }, { "name": "sitemap", "in": "query", "description": "sitemap name", "schema": { "type": "string" } }, { "name": "pageid", "in": "query", "description": "page id", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "text/event-stream": { "schema": { "$ref": "#/components/schemas/SitemapEvent" } } } }, "400": { "description": "Missing sitemap or page parameter, or page not linked successfully to the subscription." }, "404": { "description": "Subscription not found." } } } }, "/sitemaps": { "get": { "tags": [ "sitemaps" ], "summary": "Get all available sitemaps.", "operationId": "getSitemaps", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SitemapDTO" } } } } } } } }, "/events/states": { "get": { "tags": [ "events" ], "summary": "Initiates a new item state tracker connection", "operationId": "initNewStateTacker", "responses": { "200": { "description": "OK", "content": { "text/event-stream": {} } } } } }, "/events": { "get": { "tags": [ "events" ], "summary": "Get all events.", "operationId": "getEvents", "parameters": [ { "name": "topics", "in": "query", "description": "topics", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "text/event-stream": {} } }, "400": { "description": "Topic is empty or contains invalid characters" } } } }, "/events/states/{connectionId}": { "post": { "tags": [ "events" ], "summary": "Changes the list of items a SSE connection will receive state updates to.", "operationId": "updateItemListForStateUpdates", "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "items", "content": { "application/json": { "schema": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } } }, "responses": { "200": { "description": "OK" }, "404": { "description": "Unknown connectionId" } } } }, "/transformations/{uid}": { "get": { "tags": [ "transformations" ], "summary": "Get a single transformation", "operationId": "getTransformation", "parameters": [ { "name": "uid", "in": "path", "description": "Transformation UID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Transformation" } } } }, "404": { "description": "Not found" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "transformations" ], "summary": "Put a single transformation", "operationId": "putTransformation", "parameters": [ { "name": "uid", "in": "path", "description": "Transformation UID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "transformation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationDTO" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request (content missing or invalid)" }, "405": { "description": "Transformation not editable" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "transformations" ], "summary": "Get a single transformation", "operationId": "deleteTransformation", "parameters": [ { "name": "uid", "in": "path", "description": "Transformation UID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "UID not found" }, "405": { "description": "Transformation not editable" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/transformations/services": { "get": { "tags": [ "transformations" ], "summary": "Get all transformation services", "operationId": "getTransformationServices", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/transformations": { "get": { "tags": [ "transformations" ], "summary": "Get a list of all transformations", "operationId": "getTransformations", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransformationDTO" } } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/ui/components/{namespace}": { "get": { "tags": [ "ui" ], "summary": "Get all registered UI components in the specified namespace.", "operationId": "getRegisteredUIComponentsInNamespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "summary", "in": "query", "description": "summary fields only", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RootUIComponent" } } } } } } }, "post": { "tags": [ "ui" ], "summary": "Add a UI component in the specified namespace.", "operationId": "addUIComponentToNamespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootUIComponent" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootUIComponent" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/ui/components/{namespace}/{componentUID}": { "get": { "tags": [ "ui" ], "summary": "Get a specific UI component in the specified namespace.", "operationId": "getUIComponentInNamespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "componentUID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootUIComponent" } } } }, "404": { "description": "Component not found" } } }, "put": { "tags": [ "ui" ], "summary": "Update a specific UI component in the specified namespace.", "operationId": "updateUIComponentInNamespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "componentUID", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootUIComponent" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootUIComponent" } } } }, "404": { "description": "Component not found" } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "ui" ], "summary": "Remove a specific UI component in the specified namespace.", "operationId": "removeUIComponentFromNamespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "componentUID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "Component not found" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/ui/tiles": { "get": { "tags": [ "ui" ], "summary": "Get all registered UI tiles.", "operationId": "getUITiles", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TileDTO" } } } } } } } }, "/voice/defaultvoice": { "get": { "tags": [ "voice" ], "summary": "Gets the default voice.", "operationId": "getDefaultVoice", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceDTO" } } } }, "404": { "description": "No default voice was found." } } } }, "/voice/interpreters/{id}": { "get": { "tags": [ "voice" ], "summary": "Gets a single interpreter.", "operationId": "getVoiceInterpreterByUID", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "interpreter id", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]+", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HumanLanguageInterpreterDTO" } } } } }, "404": { "description": "Interpreter not found" } } } }, "/voice/interpreters": { "get": { "tags": [ "voice" ], "summary": "Get the list of all interpreters.", "operationId": "getVoiceInterpreters", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HumanLanguageInterpreterDTO" } } } } } } }, "post": { "tags": [ "voice" ], "summary": "Sends a text to the default human language interpreter.", "operationId": "interpretTextByDefaultInterpreter", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "requestBody": { "description": "text to interpret", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "interpretation exception occurs" }, "404": { "description": "No human language interpreter was found." } } } }, "/voice/voices": { "get": { "tags": [ "voice" ], "summary": "Get the list of all voices.", "operationId": "getVoices", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VoiceDTO" } } } } } } } }, "/voice/interpreters/{ids}": { "post": { "tags": [ "voice" ], "summary": "Sends a text to a given human language interpreter(s).", "operationId": "interpretText", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "ids", "in": "path", "description": "comma separated list of interpreter ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "requestBody": { "description": "text to interpret", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "interpretation exception occurs" }, "404": { "description": "No human language interpreter was found." } } } }, "/voice/listenandanswer": { "post": { "tags": [ "voice" ], "summary": "Executes a simple dialog sequence without keyword spotting for a given audio source.", "operationId": "listenAndAnswer", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "source ID", "schema": { "type": "string" } }, { "name": "sttId", "in": "query", "description": "Speech-to-Text ID", "schema": { "type": "string" } }, { "name": "ttsId", "in": "query", "description": "Text-to-Speech ID", "schema": { "type": "string" } }, { "name": "voiceId", "in": "query", "description": "voice ID", "schema": { "type": "string" } }, { "name": "hliIds", "in": "query", "description": "interpreter IDs", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "sinkId", "in": "query", "description": "audio sink ID", "schema": { "type": "string" } }, { "name": "listeningItem", "in": "query", "description": "listening item", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "Services are missing or language is not supported by services or dialog processing is already started for the audio source." }, "404": { "description": "One of the given ids is wrong." } } } }, "/voice/say": { "post": { "tags": [ "voice" ], "summary": "Speaks a given text with a given voice through the given audio sink.", "operationId": "textToSpeech", "parameters": [ { "name": "voiceid", "in": "query", "description": "voice id", "schema": { "type": "string" } }, { "name": "sinkid", "in": "query", "description": "audio sink id", "schema": { "type": "string" } }, { "name": "volume", "in": "query", "description": "volume level", "schema": { "type": "string" } } ], "requestBody": { "description": "text to speak", "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "OK" } } } }, "/voice/dialog/start": { "post": { "tags": [ "voice" ], "summary": "Start dialog processing for a given audio source.", "operationId": "startDialog", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "source ID", "schema": { "type": "string" } }, { "name": "ksId", "in": "query", "description": "keywork spotter ID", "schema": { "type": "string" } }, { "name": "sttId", "in": "query", "description": "Speech-to-Text ID", "schema": { "type": "string" } }, { "name": "ttsId", "in": "query", "description": "Text-to-Speech ID", "schema": { "type": "string" } }, { "name": "voiceId", "in": "query", "description": "voice ID", "schema": { "type": "string" } }, { "name": "hliIds", "in": "query", "description": "comma separated list of interpreter IDs", "schema": { "type": "string" } }, { "name": "sinkId", "in": "query", "description": "audio sink ID", "schema": { "type": "string" } }, { "name": "keyword", "in": "query", "description": "keyword", "schema": { "type": "string" } }, { "name": "listeningItem", "in": "query", "description": "listening item", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "Services are missing or language is not supported by services or dialog processing is already started for the audio source." }, "404": { "description": "One of the given ids is wrong." } } } }, "/voice/dialog/stop": { "post": { "tags": [ "voice" ], "summary": "Stop dialog processing for a given audio source.", "operationId": "stopDialog", "parameters": [ { "name": "sourceId", "in": "query", "description": "source ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "400": { "description": "No dialog processing is started for the audio source." }, "404": { "description": "No audio source was found." } } } }, "/logging/{loggerName}": { "get": { "tags": [ "logging" ], "summary": "Get a single logger.", "operationId": "getLogger", "parameters": [ { "name": "loggerName", "in": "path", "description": "logger name", "required": true, "schema": { "pattern": "[a-zA-Z0-9.]+", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoggerInfo" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] }, "put": { "tags": [ "logging" ], "summary": "Modify or add logger", "operationId": "putLogger", "parameters": [ { "name": "loggerName", "in": "path", "description": "logger name", "required": true, "schema": { "pattern": "[a-zA-Z0-9.]+", "type": "string" } } ], "requestBody": { "description": "logger", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoggerInfo" } } }, "required": true }, "responses": { "200": { "description": "OK" }, "400": { "description": "Payload is invalid." } }, "security": [ { "oauth2": [ "admin" ] } ] }, "delete": { "tags": [ "logging" ], "summary": "Remove a single logger.", "operationId": "removeLogger", "parameters": [ { "name": "loggerName", "in": "path", "description": "logger name", "required": true, "schema": { "pattern": "[a-zA-Z0-9.]+", "type": "string" } } ], "responses": { "200": { "description": "OK" } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/logging": { "get": { "tags": [ "logging" ], "summary": "Get all loggers", "operationId": "getLogger_1", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoggerBean" } } } } }, "security": [ { "oauth2": [ "admin" ] } ] } }, "/iconsets": { "get": { "tags": [ "iconsets" ], "summary": "Gets all icon sets.", "operationId": "getIconSets", "parameters": [ { "name": "Accept-Language", "in": "header", "description": "language", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IconSet" } } } } } } } }, "/habpanel/gallery/{galleryName}/widgets": { "get": { "tags": [ "habpanel" ], "summary": "Gets the list of widget gallery items.", "operationId": "getGalleryWidgetList", "parameters": [ { "name": "galleryName", "in": "path", "description": "gallery name e.g. 'community'", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]*", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GalleryWidgetsListItem" } } } } }, "404": { "description": "Unknown gallery" } } } }, "/habpanel/gallery/{galleryName}/widgets/{id}": { "get": { "tags": [ "habpanel" ], "summary": "Gets the details about a widget gallery item.", "operationId": "getGalleryWidgetsItem", "parameters": [ { "name": "galleryName", "in": "path", "description": "gallery name e.g. 'community'", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]*", "type": "string" } }, { "name": "id", "in": "path", "description": "id within the gallery", "required": true, "schema": { "pattern": "[a-zA-Z_0-9]*", "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GalleryItem" } } } }, "404": { "description": "Unknown gallery or gallery item not found" } } } } }, "components": { "schemas": { "ConfigDescriptionParameterDTO": { "type": "object", "properties": { "context": { "type": "string" }, "defaultValue": { "type": "string" }, "description": { "type": "string" }, "label": { "type": "string" }, "name": { "type": "string" }, "required": { "type": "boolean" }, "type": { "type": "string", "enum": [ "TEXT", "INTEGER", "DECIMAL", "BOOLEAN" ] }, "min": { "type": "number" }, "max": { "type": "number" }, "stepsize": { "type": "number" }, "pattern": { "type": "string" }, "readOnly": { "type": "boolean" }, "multiple": { "type": "boolean" }, "multipleLimit": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "advanced": { "type": "boolean" }, "verify": { "type": "boolean" }, "limitToOptions": { "type": "boolean" }, "unit": { "type": "string" }, "unitLabel": { "type": "string" }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/ParameterOptionDTO" } }, "filterCriteria": { "type": "array", "items": { "$ref": "#/components/schemas/FilterCriteriaDTO" } } } }, "FilterCriteriaDTO": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "ModuleTypeDTO": { "type": "object", "properties": { "uid": { "type": "string" }, "visibility": { "type": "string", "enum": [ "VISIBLE", "HIDDEN", "EXPERT" ] }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "label": { "type": "string" }, "description": { "type": "string" }, "configDescriptions": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } } } }, "ParameterOptionDTO": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" } } }, "ActionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "type": { "type": "string" }, "inputs": { "type": "object", "additionalProperties": { "type": "string" } } } }, "ConditionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "type": { "type": "string" }, "inputs": { "type": "object", "additionalProperties": { "type": "string" } } } }, "RuleDTO": { "type": "object", "properties": { "triggers": { "type": "array", "items": { "$ref": "#/components/schemas/TriggerDTO" } }, "conditions": { "type": "array", "items": { "$ref": "#/components/schemas/ConditionDTO" } }, "actions": { "type": "array", "items": { "$ref": "#/components/schemas/ActionDTO" } }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "configDescriptions": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } }, "templateUID": { "type": "string" }, "uid": { "type": "string" }, "name": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "visibility": { "type": "string", "enum": [ "VISIBLE", "HIDDEN", "EXPERT" ] }, "description": { "type": "string" } } }, "TriggerDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "type": { "type": "string" } } }, "EnrichedRuleDTO": { "type": "object", "properties": { "triggers": { "type": "array", "items": { "$ref": "#/components/schemas/TriggerDTO" } }, "conditions": { "type": "array", "items": { "$ref": "#/components/schemas/ConditionDTO" } }, "actions": { "type": "array", "items": { "$ref": "#/components/schemas/ActionDTO" } }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "configDescriptions": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } }, "templateUID": { "type": "string" }, "uid": { "type": "string" }, "name": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "visibility": { "type": "string", "enum": [ "VISIBLE", "HIDDEN", "EXPERT" ] }, "description": { "type": "string" }, "status": { "$ref": "#/components/schemas/RuleStatusInfo" }, "editable": { "type": "boolean" } } }, "RuleStatusInfo": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "UNINITIALIZED", "INITIALIZING", "IDLE", "RUNNING" ] }, "statusDetail": { "type": "string", "enum": [ "NONE", "HANDLER_MISSING_ERROR", "HANDLER_INITIALIZING_ERROR", "CONFIGURATION_ERROR", "TEMPLATE_MISSING_ERROR", "INVALID_RULE", "DISABLED" ] }, "description": { "type": "string" } } }, "ModuleDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "type": { "type": "string" } } }, "Action": { "type": "object", "properties": { "inputs": { "type": "object", "additionalProperties": { "type": "string" } }, "description": { "type": "string" }, "label": { "type": "string" }, "typeUID": { "type": "string" }, "configuration": { "$ref": "#/components/schemas/Configuration" }, "id": { "type": "string" } } }, "Condition": { "type": "object", "properties": { "inputs": { "type": "object", "additionalProperties": { "type": "string" } }, "description": { "type": "string" }, "label": { "type": "string" }, "typeUID": { "type": "string" }, "configuration": { "$ref": "#/components/schemas/Configuration" }, "id": { "type": "string" } } }, "ConfigDescriptionParameter": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string", "enum": [ "TEXT", "INTEGER", "DECIMAL", "BOOLEAN" ] }, "groupName": { "type": "string" }, "pattern": { "type": "string" }, "required": { "type": "boolean" }, "readOnly": { "type": "boolean" }, "multiple": { "type": "boolean" }, "multipleLimit": { "type": "integer", "format": "int32" }, "unit": { "type": "string" }, "unitLabel": { "type": "string" }, "context": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/ParameterOption" } }, "filterCriteria": { "type": "array", "items": { "$ref": "#/components/schemas/FilterCriteria" } }, "limitToOptions": { "type": "boolean" }, "advanced": { "type": "boolean" }, "minimum": { "type": "number" }, "maximum": { "type": "number" }, "stepSize": { "type": "number" }, "verifyable": { "type": "boolean" }, "default": { "type": "string" } } }, "Configuration": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "type": "object" } } } }, "FilterCriteria": { "type": "object", "properties": { "value": { "type": "string" }, "name": { "type": "string" } } }, "Module": { "type": "object", "properties": { "description": { "type": "string" }, "label": { "type": "string" }, "typeUID": { "type": "string" }, "configuration": { "$ref": "#/components/schemas/Configuration" }, "id": { "type": "string" } } }, "ParameterOption": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" } } }, "Rule": { "type": "object", "properties": { "description": { "type": "string" }, "visibility": { "type": "string", "enum": [ "VISIBLE", "HIDDEN", "EXPERT" ] }, "configurationDescriptions": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameter" } }, "templateUID": { "type": "string" }, "triggers": { "type": "array", "items": { "$ref": "#/components/schemas/Trigger" } }, "uid": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "configuration": { "$ref": "#/components/schemas/Configuration" }, "modules": { "type": "array", "items": { "$ref": "#/components/schemas/Module" } }, "conditions": { "type": "array", "items": { "$ref": "#/components/schemas/Condition" } }, "name": { "type": "string" }, "actions": { "type": "array", "items": { "$ref": "#/components/schemas/Action" } } } }, "RuleExecution": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time" }, "rule": { "$ref": "#/components/schemas/Rule" } } }, "Trigger": { "type": "object", "properties": { "description": { "type": "string" }, "label": { "type": "string" }, "typeUID": { "type": "string" }, "configuration": { "$ref": "#/components/schemas/Configuration" }, "id": { "type": "string" } } }, "Template": { "type": "object", "properties": { "description": { "type": "string" }, "label": { "type": "string" }, "visibility": { "type": "string", "enum": [ "VISIBLE", "HIDDEN", "EXPERT" ] }, "uid": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } }, "Input": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "required": { "type": "boolean" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "reference": { "type": "string" }, "defaultValue": { "type": "string" } } }, "Output": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "label": { "type": "string" }, "description": { "type": "string" }, "reference": { "type": "string" }, "defaultValue": { "type": "string" } } }, "ThingActionDTO": { "type": "object", "properties": { "actionUid": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/Input" } }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/Output" } } } }, "AudioSinkDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" } } }, "AudioSourceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" } } }, "UserApiTokenDTO": { "type": "object", "properties": { "name": { "type": "string" }, "createdTime": { "type": "string", "format": "date-time" }, "scope": { "type": "string" } } }, "UserSessionDTO": { "type": "object", "properties": { "sessionId": { "type": "string" }, "createdTime": { "type": "string", "format": "date-time" }, "lastRefreshTime": { "type": "string", "format": "date-time" }, "clientId": { "type": "string" }, "scope": { "type": "string" } } }, "TokenResponseDTO": { "type": "object", "properties": { "access_token": { "type": "string" }, "token_type": { "type": "string" }, "expires_in": { "type": "integer", "format": "int32" }, "refresh_token": { "type": "string" }, "scope": { "type": "string" }, "user": { "$ref": "#/components/schemas/UserDTO" } } }, "UserDTO": { "type": "object", "properties": { "name": { "type": "string" }, "roles": { "type": "array", "items": { "type": "string" } } } }, "Addon": { "type": "object", "properties": { "uid": { "type": "string" }, "id": { "type": "string" }, "label": { "type": "string" }, "version": { "type": "string" }, "maturity": { "type": "string" }, "compatible": { "type": "boolean" }, "contentType": { "type": "string" }, "link": { "type": "string" }, "author": { "type": "string" }, "verifiedAuthor": { "type": "boolean" }, "installed": { "type": "boolean" }, "type": { "type": "string" }, "description": { "type": "string" }, "detailedDescription": { "type": "string" }, "configDescriptionURI": { "type": "string" }, "keywords": { "type": "string" }, "countries": { "type": "array", "items": { "type": "string" } }, "license": { "type": "string" }, "connection": { "type": "string" }, "backgroundColor": { "type": "string" }, "imageLink": { "type": "string" }, "properties": { "type": "object", "additionalProperties": { "type": "object" } }, "loggerPackages": { "type": "array", "items": { "type": "string" } } } }, "AddonType": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" } } }, "ChannelTypeDTO": { "type": "object", "properties": { "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } }, "parameterGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterGroupDTO" } }, "description": { "type": "string" }, "label": { "type": "string" }, "category": { "type": "string" }, "itemType": { "type": "string" }, "unitHint": { "type": "string" }, "kind": { "type": "string" }, "stateDescription": { "$ref": "#/components/schemas/StateDescription" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "UID": { "type": "string" }, "advanced": { "type": "boolean" }, "commandDescription": { "$ref": "#/components/schemas/CommandDescription" } } }, "CommandDescription": { "type": "object", "properties": { "commandOptions": { "type": "array", "items": { "$ref": "#/components/schemas/CommandOption" } } } }, "CommandOption": { "type": "object", "properties": { "command": { "type": "string" }, "label": { "type": "string" } } }, "ConfigDescriptionParameterGroupDTO": { "type": "object", "properties": { "name": { "type": "string" }, "context": { "type": "string" }, "advanced": { "type": "boolean" }, "label": { "type": "string" }, "description": { "type": "string" } } }, "StateDescription": { "type": "object", "properties": { "minimum": { "type": "number" }, "maximum": { "type": "number" }, "step": { "type": "number" }, "pattern": { "type": "string" }, "readOnly": { "type": "boolean" }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/StateOption" } } } }, "StateOption": { "type": "object", "properties": { "value": { "type": "string" }, "label": { "type": "string" } } }, "ConfigDescriptionDTO": { "type": "object", "properties": { "uri": { "type": "string" }, "parameters": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } }, "parameterGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterGroupDTO" } } } }, "DiscoveryResultDTO": { "type": "object", "properties": { "bridgeUID": { "type": "string" }, "flag": { "type": "string", "enum": [ "NEW", "IGNORED" ] }, "label": { "type": "string" }, "properties": { "type": "object", "additionalProperties": { "type": "object" } }, "representationProperty": { "type": "string" }, "thingUID": { "type": "string" }, "thingTypeUID": { "type": "string" } } }, "MetadataDTO": { "type": "object", "properties": { "value": { "type": "string" }, "config": { "type": "object", "additionalProperties": { "type": "object" } } } }, "EnrichedItemDTO": { "type": "object", "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "label": { "type": "string" }, "category": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "groupNames": { "type": "array", "items": { "type": "string" } }, "link": { "type": "string" }, "state": { "type": "string" }, "transformedState": { "type": "string" }, "stateDescription": { "$ref": "#/components/schemas/StateDescription" }, "unitSymbol": { "type": "string" }, "commandDescription": { "$ref": "#/components/schemas/CommandDescription" }, "metadata": { "type": "object", "additionalProperties": { "type": "object" } }, "editable": { "type": "boolean" }, "groupType": { "type": "string" } } }, "GroupFunctionDTO": { "type": "object", "properties": { "name": { "type": "string" }, "params": { "type": "array", "items": { "type": "string" } } } }, "GroupItemDTO": { "type": "object", "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "label": { "type": "string" }, "category": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "groupNames": { "type": "array", "items": { "type": "string" } }, "groupType": { "type": "string" }, "function": { "$ref": "#/components/schemas/GroupFunctionDTO" } } }, "EnrichedItemChannelLinkDTO": { "type": "object", "properties": { "itemName": { "type": "string" }, "channelUID": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "editable": { "type": "boolean" } } }, "ItemChannelLinkDTO": { "type": "object", "properties": { "itemName": { "type": "string" }, "channelUID": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } } } }, "HistoryDataBean": { "type": "object", "properties": { "time": { "type": "integer", "format": "int64" }, "state": { "type": "string" } } }, "ItemHistoryDTO": { "type": "object", "properties": { "name": { "type": "string" }, "totalrecords": { "type": "string" }, "datapoints": { "type": "string" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/HistoryDataBean" } } } }, "PersistenceCronStrategyDTO": { "type": "object", "properties": { "name": { "type": "string" }, "cronExpression": { "type": "string" } } }, "PersistenceFilterDTO": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "number" }, "relative": { "type": "boolean" }, "unit": { "type": "string" }, "lower": { "type": "number" }, "upper": { "type": "number" }, "values": { "type": "array", "items": { "type": "string" } }, "inverted": { "type": "boolean" } } }, "PersistenceItemConfigurationDTO": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "string" } }, "strategies": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "type": "string" } }, "alias": { "type": "string" } } }, "PersistenceServiceConfigurationDTO": { "type": "object", "properties": { "serviceId": { "type": "string" }, "configs": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceItemConfigurationDTO" } }, "defaults": { "type": "array", "items": { "type": "string" } }, "cronStrategies": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceCronStrategyDTO" } }, "thresholdFilters": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceFilterDTO" } }, "timeFilters": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceFilterDTO" } }, "equalsFilters": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceFilterDTO" } }, "includeFilters": { "type": "array", "items": { "$ref": "#/components/schemas/PersistenceFilterDTO" } }, "editable": { "type": "boolean" } } }, "PersistenceItemInfo": { "type": "object", "properties": { "earliest": { "type": "string", "format": "date-time" }, "latest": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "count": { "type": "integer", "format": "int32" } } }, "PersistenceServiceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "type": { "type": "string" } } }, "ProfileTypeDTO": { "type": "object", "properties": { "uid": { "type": "string" }, "label": { "type": "string" }, "kind": { "type": "string" }, "supportedItemTypes": { "type": "array", "items": { "type": "string" } } } }, "ConfigurableServiceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "category": { "type": "string" }, "configDescriptionURI": { "type": "string" }, "multiple": { "type": "boolean" } } }, "EnrichedSemanticTagDTO": { "type": "object" }, "EnrichedChannelDTO": { "type": "object", "properties": { "uid": { "type": "string" }, "id": { "type": "string" }, "channelTypeUID": { "type": "string" }, "itemType": { "type": "string" }, "kind": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "defaultTags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "autoUpdatePolicy": { "type": "string" }, "linkedItems": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } }, "EnrichedThingDTO": { "type": "object", "properties": { "label": { "type": "string" }, "bridgeUID": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "UID": { "type": "string" }, "thingTypeUID": { "type": "string" }, "location": { "type": "string" }, "channels": { "type": "array", "items": { "$ref": "#/components/schemas/EnrichedChannelDTO" } }, "statusInfo": { "$ref": "#/components/schemas/ThingStatusInfo" }, "firmwareStatus": { "$ref": "#/components/schemas/FirmwareStatusDTO" }, "editable": { "type": "boolean" } } }, "FirmwareStatusDTO": { "type": "object", "properties": { "status": { "type": "string" }, "updatableVersion": { "type": "string" } } }, "ThingStatusInfo": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "UNINITIALIZED", "INITIALIZING", "UNKNOWN", "ONLINE", "OFFLINE", "REMOVING", "REMOVED" ] }, "statusDetail": { "type": "string", "enum": [ "NONE", "NOT_YET_READY", "HANDLER_MISSING_ERROR", "HANDLER_REGISTERING_ERROR", "HANDLER_INITIALIZING_ERROR", "HANDLER_CONFIGURATION_PENDING", "CONFIGURATION_PENDING", "COMMUNICATION_ERROR", "CONFIGURATION_ERROR", "BRIDGE_OFFLINE", "FIRMWARE_UPDATING", "DUTY_CYCLE", "BRIDGE_UNINITIALIZED", "GONE", "DISABLED" ] }, "description": { "type": "string" } } }, "ChannelDTO": { "type": "object", "properties": { "uid": { "type": "string" }, "id": { "type": "string" }, "channelTypeUID": { "type": "string" }, "itemType": { "type": "string" }, "kind": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "defaultTags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "autoUpdatePolicy": { "type": "string" } } }, "ThingDTO": { "type": "object", "properties": { "label": { "type": "string" }, "bridgeUID": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "object" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "UID": { "type": "string" }, "thingTypeUID": { "type": "string" }, "location": { "type": "string" }, "channels": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelDTO" } } } }, "ConfigStatusMessage": { "type": "object", "properties": { "parameterName": { "type": "string" }, "type": { "type": "string", "enum": [ "INFORMATION", "WARNING", "ERROR", "PENDING" ] }, "message": { "type": "string" }, "statusCode": { "type": "integer", "format": "int32" } } }, "FirmwareDTO": { "type": "object", "properties": { "thingTypeUID": { "type": "string" }, "vendor": { "type": "string" }, "model": { "type": "string" }, "modelRestricted": { "type": "boolean" }, "description": { "type": "string" }, "version": { "type": "string" }, "changelog": { "type": "string" }, "prerequisiteVersion": { "type": "string" } } }, "StrippedThingTypeDTO": { "type": "object", "properties": { "UID": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string" }, "listed": { "type": "boolean" }, "supportedBridgeTypeUIDs": { "type": "array", "items": { "type": "string" } }, "bridge": { "type": "boolean" } } }, "JerseyResponseBuilderDTO": { "type": "object", "properties": { "status": { "type": "string" }, "context": { "$ref": "#/components/schemas/ContextDTO" } } }, "ContextDTO": { "type": "object", "properties": { "headers": { "$ref": "#/components/schemas/HeadersDTO" } } }, "HeadersDTO": { "type": "object", "properties": { "Location": { "type": "array", "items": { "type": "string" } } } }, "ChannelDefinitionDTO": { "type": "object", "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "label": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "category": { "type": "string" }, "stateDescription": { "$ref": "#/components/schemas/StateDescription" }, "advanced": { "type": "boolean" }, "typeUID": { "type": "string" } } }, "ChannelGroupDefinitionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "description": { "type": "string" }, "label": { "type": "string" }, "channels": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelDefinitionDTO" } } } }, "ThingTypeDTO": { "type": "object", "properties": { "UID": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string" }, "listed": { "type": "boolean" }, "supportedBridgeTypeUIDs": { "type": "array", "items": { "type": "string" } }, "bridge": { "type": "boolean" }, "channels": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelDefinitionDTO" } }, "channelGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelGroupDefinitionDTO" } }, "configParameters": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterDTO" } }, "parameterGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ConfigDescriptionParameterGroupDTO" } }, "properties": { "type": "object", "additionalProperties": { "type": "string" } }, "extensibleChannelTypeIds": { "type": "array", "items": { "type": "string" } } } }, "Links": { "type": "object", "properties": { "type": { "type": "string" }, "url": { "type": "string" } } }, "RootBean": { "type": "object", "properties": { "version": { "type": "string" }, "locale": { "type": "string" }, "measurementSystem": { "type": "string" }, "runtimeInfo": { "$ref": "#/components/schemas/RuntimeInfo" }, "links": { "type": "array", "items": { "$ref": "#/components/schemas/Links" } } } }, "RuntimeInfo": { "type": "object", "properties": { "version": { "type": "string" }, "buildString": { "type": "string" } } }, "SystemInfo": { "type": "object", "properties": { "configFolder": { "type": "string" }, "userdataFolder": { "type": "string" }, "logFolder": { "type": "string" }, "javaVersion": { "type": "string" }, "javaVendor": { "type": "string" }, "javaVendorVersion": { "type": "string" }, "osName": { "type": "string" }, "osVersion": { "type": "string" }, "osArchitecture": { "type": "string" }, "availableProcessors": { "type": "integer", "format": "int32" }, "freeMemory": { "type": "integer", "format": "int64" }, "totalMemory": { "type": "integer", "format": "int64" }, "uptime": { "type": "integer", "format": "int64" }, "startLevel": { "type": "integer", "format": "int32" } } }, "SystemInfoBean": { "type": "object", "properties": { "systemInfo": { "$ref": "#/components/schemas/SystemInfo" } } }, "DimensionInfo": { "type": "object", "properties": { "dimension": { "type": "string" }, "systemUnit": { "type": "string" } } }, "UoMInfo": { "type": "object", "properties": { "dimensions": { "type": "array", "items": { "$ref": "#/components/schemas/DimensionInfo" } } } }, "UoMInfoBean": { "type": "object", "properties": { "uomInfo": { "$ref": "#/components/schemas/UoMInfo" } } }, "MappingDTO": { "type": "object", "properties": { "row": { "type": "integer", "format": "int32" }, "column": { "type": "integer", "format": "int32" }, "command": { "type": "string" }, "releaseCommand": { "type": "string" }, "label": { "type": "string" }, "icon": { "type": "string" } } }, "PageDTO": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "icon": { "type": "string" }, "link": { "type": "string" }, "parent": { "$ref": "#/components/schemas/PageDTO" }, "leaf": { "type": "boolean" }, "timeout": { "type": "boolean" }, "widgets": { "type": "array", "items": { "$ref": "#/components/schemas/WidgetDTO" } } } }, "WidgetDTO": { "type": "object", "properties": { "widgetId": { "type": "string" }, "type": { "type": "string" }, "name": { "type": "string" }, "visibility": { "type": "boolean" }, "label": { "type": "string" }, "labelSource": { "type": "string" }, "icon": { "type": "string" }, "staticIcon": { "type": "boolean" }, "labelcolor": { "type": "string" }, "valuecolor": { "type": "string" }, "iconcolor": { "type": "string" }, "pattern": { "type": "string" }, "unit": { "type": "string" }, "mappings": { "type": "array", "items": { "$ref": "#/components/schemas/MappingDTO" } }, "switchSupport": { "type": "boolean" }, "releaseOnly": { "type": "boolean" }, "sendFrequency": { "type": "integer", "format": "int32" }, "refresh": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "minValue": { "type": "number" }, "maxValue": { "type": "number" }, "step": { "type": "number" }, "inputHint": { "type": "string" }, "url": { "type": "string" }, "encoding": { "type": "string" }, "service": { "type": "string" }, "period": { "type": "string" }, "yAxisDecimalPattern": { "type": "string" }, "legend": { "type": "boolean" }, "forceAsItem": { "type": "boolean" }, "row": { "type": "integer", "format": "int32" }, "column": { "type": "integer", "format": "int32" }, "command": { "type": "string" }, "releaseCommand": { "type": "string" }, "stateless": { "type": "boolean" }, "state": { "type": "string" }, "item": { "$ref": "#/components/schemas/EnrichedItemDTO" }, "linkedPage": { "$ref": "#/components/schemas/PageDTO" }, "widgets": { "type": "array", "items": { "$ref": "#/components/schemas/WidgetDTO" } } } }, "SitemapEvent" : { "type" : "object", "properties" : { "sitemapName" : { "type" : "string" }, "pageId" : { "type" : "string" } }, "oneOf" : [ { "$ref" : "#/components/schemas/SitemapWidgetEvent" }, { "$ref" : "#/components/schemas/SitemapChangedEvent" }, { "$ref" : "#/components/schemas/ServerAliveEvent" } ] }, "SitemapWidgetEvent": { "type": "object", "properties": { "widgetId": { "type": "string" }, "label": { "type": "string" }, "labelSource": { "type": "string" }, "icon": { "type": "string" }, "labelcolor": { "type": "string" }, "valuecolor": { "type": "string" }, "iconcolor": { "type": "string" }, "state": { "type": "string" }, "reloadIcon": { "type": "boolean" }, "visibility": { "type": "boolean" }, "descriptionChanged": { "type": "boolean" }, "item": { "$ref": "#/components/schemas/EnrichedItemDTO" }, "sitemapName": { "type": "string" }, "pageId": { "type": "string" } } }, "SitemapChangedEvent" : { "required" : [ "TYPE" ], "type" : "object", "properties" : { "sitemapName" : { "type" : "string" }, "pageId" : { "type" : "string" }, "TYPE" : { "type" : "string", "readOnly" : true, "enum" : [ "SITEMAP_CHANGED" ] } } }, "ServerAliveEvent" : { "required" : [ "TYPE" ], "type" : "object", "properties" : { "sitemapName" : { "type" : "string" }, "pageId" : { "type" : "string" }, "TYPE" : { "type" : "string", "readOnly" : true, "enum" : [ "ALIVE" ] } } }, "SitemapDTO": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "string" }, "label": { "type": "string" }, "link": { "type": "string" }, "homepage": { "$ref": "#/components/schemas/PageDTO" } } }, "Transformation": { "type": "object", "properties": { "uid": { "type": "string" }, "label": { "type": "string" }, "type": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "string" } } } }, "TransformationDTO": { "type": "object", "properties": { "uid": { "type": "string" }, "label": { "type": "string" }, "type": { "type": "string" }, "configuration": { "type": "object", "additionalProperties": { "type": "string" } }, "editable": { "type": "boolean" } } }, "RootUIComponent": { "type": "object", "properties": { "component": { "type": "string" }, "config": { "type": "object", "additionalProperties": { "type": "object" } }, "slots": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/UIComponent" } } }, "uid": { "type": "string" }, "tags": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, "props": { "$ref": "#/components/schemas/ConfigDescriptionDTO" }, "timestamp": { "type": "string", "format": "date-time" }, "type": { "type": "string" } } }, "UIComponent": { "type": "object", "properties": { "component": { "type": "string" }, "config": { "type": "object", "additionalProperties": { "type": "object" } }, "type": { "type": "string" } } }, "TileDTO": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "overlay": { "type": "string" }, "imageUrl": { "type": "string" } } }, "VoiceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "locale": { "type": "string" } } }, "HumanLanguageInterpreterDTO": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "locales": { "uniqueItems": true, "type": "array", "items": { "type": "string" } } } }, "LoggerInfo": { "type": "object", "properties": { "loggerName": { "type": "string" }, "level": { "type": "string" } } }, "LoggerBean": { "type": "object", "properties": { "loggers": { "type": "array", "items": { "$ref": "#/components/schemas/LoggerInfo" } } } }, "IconSet": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "formats": { "uniqueItems": true, "type": "array", "items": { "type": "string", "enum": [ "PNG", "SVG" ] } } } }, "GalleryWidgetsListItem": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "likes": { "type": "integer", "format": "int32" }, "views": { "type": "integer", "format": "int32" }, "posts": { "type": "integer", "format": "int32" }, "imageUrl": { "type": "string" }, "createdDate": { "type": "string", "format": "date-time" } } }, "GalleryItem": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "likes": { "type": "integer", "format": "int32" }, "views": { "type": "integer", "format": "int32" }, "posts": { "type": "integer", "format": "int32" }, "imageUrl": { "type": "string" }, "author": { "type": "string" }, "authorName": { "type": "string" }, "authorAvatarUrl": { "type": "string" }, "createdDate": { "type": "string", "format": "date-time" }, "updatedDate": { "type": "string", "format": "date-time" }, "readme": { "type": "string" } } } }, "securitySchemes": { "oauth2": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "/auth/authorize", "tokenUrl": "/rest/auth/token", "scopes": { "admin": "Administration operations" } } } } } } }